前端——面试(赞同科技)

1.Git命令

  • Git配置
    • git config --global user.name
    • git config --global user.email
    • git config --global core.editor 编译器名称
    • git config --list(查看配置信息)
    • git config -e(针对当前仓库配置)
    • git config -e --global(针对所有仓库配置)
  • 提交与修改命令
    • 工作区:电脑看到的目录
    • 暂存区:一般在.git目录下的index文件
    • 版本库:隐藏目录.git是版本库
    • 工作区—暂存区:git add ./
    • 暂存区—版本库:git commit -m ‘本次提交描述’
    • Git status 查看仓库的当前状态
    • Git diff 比较暂存区和工作区的文件不同
    • Git reset 回退版本
    • Git rm 删除工作区文件
    • Git mv 移动或重命名工作区文件
  • 创建仓库
    • git init [文件名称] (已存在的目录初始化时不需要写文件目录)
    • git clone repo(git仓库)
  • 日志
    • Git log 查看日志
    • Git log --oneline 查看简洁的版本
    • Git blame 以列表形式查看文件修改记录
  • 远程操作
    • Git remote 远程仓库操作
    • ssh-keygen -t rsa -C ‘注册github的邮箱’ 创建SSH key
    • ssh-T [email protected]` 与github连接 Git remote add origin repo 连接
    • Git push -u origin master本地到远程推送
    • Git push 再次推送,不许要参数
    • Git fetch 远程获取代码库
    • Git pull 远程到本地
  • 分支管理
    • Git branch
    • Git branch dev
    • Git checkout dev
    • Git merge dev
    • Git branch -d dev
  • 标签管理
    • Git tag -a 版本号(不用 -a 选项也可以执行的,但它不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。 我推荐一直创建带注解的标签。)
    • Git tag 查看

2.Webpack的基本配置

  • 基本:entry output devServer plugins module

3.Vue-router的model有两种模式history和hash使用及区别

  • Hash :地址栏URL中的#符号 #/index window.location.hash
  • History:在host之后直接添加斜线和路径请求 /index
    window.location.pathname
  • 区别
    • 是否向后端传参:Hash中的#后面的内容不会包含在请求中,只是被前端浏览器利用 刷新网页,History中看到请求的url为完整的url,请求后端
    • 是否刷新页面:Hash不刷新,History刷新
    • 方法:onhashchange pushState replaceState

4.讲一下restful

转发自公众号“架构文摘”

  • 概述:restful(Representational state transfer 对资源的表述性状态转移)是一种软件架构风格、设计风格,API设计规范,提供一组设计原则和约束条件。主要用于客户端和服务器交互类的软件,使得软件更简洁,更有层次,更易于实现缓存等机制。
  • 动词+宾语
    • 动词的覆盖:有些客户端只能使用get和post,X-HTTP-Method-Override:PUT 就是告诉服务器使用PUT覆盖POST
    • 宾语是名词:URI是名词就存在单复数,一般建议使用复数URI
  • 避免多级URI:除了第一级,其他级别都用查询字符串表达。/a/b-- /a?b=true
  • 资源与URI:表述就是资源,资源被识别的唯一标识就是URI,URI的设计遵循可寻址性原则
  • 技巧:使用_或者-让URI提高可读性
    • /表示资源的层级关系
    • ?用来过滤资源
    • ,/;表示同级资源关系
  • 统一资源接口:通过使用相同的接口进行资源的访问
  • 资源的表述:资源的表述包括数据和描述数据的元数据,客户端如何知道服务端提供的表述形式,通过HTTP内容协商,客户端通过Accept头请求一种特定格式表述。

5.http传参的三个地方

  • url的?后面可以传参:
  • path中传参:
  • http报文头header中传参:自定义

6.Ajax与fetch的区别

  • Fetch
    • 是基于promise实现的,也可以结合async和await使用
    • fetch请求默认是不携带cookie的,需要设置
    • fetch是window的一个方法
    • 只有网络出错导致请求不能完成时,fetch才会被fetch,400/500不会reject
  • Ajax
    • 状态为200/304时才会请求成功
    • 是XMLHttpRequest的一个实例,实现网页不刷新异步更新。
    • ajax针对MVC编程,不符合MVVM模式浪潮

7.Swagger

  • 概述:是一款让你更好去书写API文档的框架,Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。

8.数组的方法

  • 增删
    Push
    Unshift
    Pop
    Shift
  • 其他操作
    Splice
    Slice
    Sort
    Reverse
    Concat
  • 遍历
    Map
    Filter
    Reduce
    forEach

9.元素水平垂直居中

  • 第一种:
    Father:position:relative;
    Son:position:absolute;
    top:0;
    right:0;
    bottom:0;
    left:0;
    margin:auto;
  • 第二种
    Father:position:relative;
    Son:position:absolute;
    top:50%;
    left:50%;
    margin-top: -width/2;
    margin-left: -width/2;
  • 第三种
    Father:display:flex;
    justify-content:center;
    align-items:center;
  • 第四种
    Father:display:flex;
    Son:margin:auto;
  • 第五种
    Father:position:relative;
    Son:position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%)
  • 第六种
    Father:display:table-cell;
    vertical-align:middle;
    text-align:center;
    Son :display:inline-block;

10.CSS动画

  • Transition:过渡动画,鼠标触发时大多使用,一般与hover使用
    • Transition:属性 时间 运动曲线 何时开始(属性和时间是必须写的)
    • 属性都要改动时使用all
  • Animation:动画,网页加载立即执行时使用
    • Animation:动画名称 动画时间 动画曲线 何时开始
    • @keyframes定义动画规则,并绑定到一个选择器上

11.Jquery和vue的区别

  • vue介绍:vue是一个刚兴起不久的前端框架,有一套完整的体系,是一个精简的MVVM。从技术角度讲,vue.js专注于MVVM模型的ViewModel层,通过双向数据绑定把view层和Model层连接起来,通过对数据的操作就可以完成对页面视图的渲染。vue以它独特的优势简单、快速、组合、紧凑、强大而迅速崛起。
  • jquery介绍:jquery是一个类库,提供了很多方法,不能算框架。在过去和现在Jquery是最流行的web前端js库,可是现在无论国内还是国外,他的使用率正在渐渐被其他的js库所替代。随着浏览器厂商对H5规范统一遵循以及ECMA6在浏览器端的实现,jquery的使用率会越来越低。
  • vue和jquery对比
    jquery是直接操作DOM;使用选择器( $)选取DOM对象,对其进行赋值、取值、事件绑定等操作;和原生的js区别只在于可以更方便的选取和操作DOM对象;数据和界面是在一起,比如获取input标签的内容$(‘input’).val(); vue基于一种MVVM模式,使用数据驱动的方式,通过Vue对象将数据和View完全分离开来。对数据进行操作,不在需要引用相应的DOM对象,通过vue对象,将数据和相应的DOM对象相互绑定起来。

猜你喜欢

转载自blog.csdn.net/qq_44349849/article/details/114263324