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 是单项数据流