面试

1.let.const.var  区别

const:声明后必须赋值 ,不存在变量提升,使用必须在声明之后

let:声明后用不用赋值影响不大,不存在变量提升,使用必须在声明之后

2.BFC

Block Format Context 块级格式化上下文 

它是页面中的一块渲染区域,有一套渲染规则,决定了其子元素如何布局,以及和其他元素之间的关系和作用。

触发条件:1.html为根元素。2.overflow不为visible。3.定位为absolute或fixed。4.float值不为none 5.display值为inline-block、table-cell、table-caption

在同一BFC中得元素,其margin-top、margin-bottom  值会折叠

3.浏览器输入路径回车后发生什么

a.查找url是否有缓存,并比较缓存是否过期。b.DNS解析URL对应得IP。c.根据IP建立TCP链接(3次握手)。d.http发起请求。f.服务器接受请求,发送响应。g.浏览器接受http响应。h.渲染页面,构建DOM树。i.TCP关闭链接

4.js继承

a.原型链继承  b.构造函数继承 c.组合继承  d.寄生继承  f.寄生组合继承 g.es6  class继承

1.原型链
function person(){
             
}
function people(){}

person.prototype = new people


2.构造函数

function person(){}
function people(){
     person.call(this)
}

3.组合
function person(){}
function people(){
    person.call(this)   
}
people.prototype = new person()
 

链接:https://www.jianshu.com/p/2f5b7b29b214

5.router.push  跟 location.href = url  区别

router.push  时h5 api  history.pushState   静态跳转以及按需加载  减少了dom得消耗    location会直接刷新页面。

6.js 严格模式

在js开头使用’use strict‘  消除js语法得一些不合理、不严谨之处,减少怪异行为。

 a.消除代码运行的一些不安全行为,保证代码运行的安全。b.提高编译效率,提高运行速度。 c.为未来新版本的Javascript做好铺垫。

7.箭头函数this问题

a.普通函数中的this :this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this指向的是window;当函数被作为某个对象的方法调用时,this就等于那个对象

b.箭头函数中的this:箭头函数的this是在定义函数时绑定的,不是在执行过程中绑定的。简单的说,函数在定义时,this就继承了定义函数的对象。

8.react  跟  vue 区别

1.vue改变视图只根据依赖搜集,页面只变动数据更新的部分。react是重新渲染整个dom树

2.state  vue是通过mutation改变的。 react 是根据setState

3.vue 是双向数据绑定。 react 是单项数据流

原文地址:https://www.cnblogs.com/tutao1995/p/11669912.html