-
1、localstorage sessionstorage 与cookie的区别
答: cook:一般由服务器生成失效时间,如果在浏览器生成,cookie默认是关闭浏览器后失效
localStorage:除非清除否则永久性保存,大小5mb,仅存在客户端,不参与通讯
sessionStorage:仅在当前会话下有效,关闭页面或者清除出浏览器,大小5mb左右,仅在客户端保存,不参与通信 -
2、for..in for..of for..each 的区别
for..in 适合遍历对象,遍历数组的索引
for..of 是es6的语法,只能遍历 symbol.inerator 的借口对象,遍历的是数组内部的元素,不包括数组的原型属性吗,method 和索引 name
for..each 是es5 的遍历数组 ,不能使用break 和return 结束并推出循环 -
3、ES6的新语法
const 与 let 变量、解构赋值、for..of循环、展开运算符、箭头函数 和 this 、Symbol、class 、promise -
4、const let 和 var 的区别
var 声明变量会倒挂到window 上,存在变量提升
let 和 const 声明形成块级作用域,块之外的访问会报错,不能变量提升,在声明之前访问会报错,不允许在同一级别中重复声明
let 声明变量,值和类型都可以改变,无限制
const 声明变量 只可以读,修改数据会报错,保存的是内存地址,可以给对象或者数组添加属性,或者元素,不能重新复写 -
5、ES6 中箭头函数 this 的指向
全局调用的时候 this 代表全局对象
作为对象方法调用的时候,this 指向这个上级对象
作为构造函数调用时候,this 只想这个新对象
apply 调用时,this 指向的是这个调用这个函数的一个参数 -
6、 对promise 的理解
promise 是异步编程的解决方案,promise 是一个对象,从它可以获取到异步操作的消息。promise 有三个状态,pending等待状态,fulfilled 成功状态,rejected失败状态。状态一旦改变,就不会在改变,创造promise 实例之后,就会立即执行,有两个api方法,resolve 和rejeck 方法,调用成功返回resolve,调用失败之后返回reject,原型链有有两个方法,,then 和 catch ,then是请求数据,catch 是捕获异常。 -
7、原型链:访问一个对象的属性,如果这个对象内部不存在这个属性,就会在prototype 里找到这个属性,这个proptotype会有自己的prototype,于是就这样一直找下去。原理:利用原型让一个引用类型继承另一个引用类型类型的属性和方法
-
8、对闭包的理解
函数嵌套函数,内部函数使用外部函数的参数,这个参数就会保存在内存里
应用场景:函数封装,使用定时器的时候
优点:减少全局变量 封装
缺点:会造成内存泄漏
解决方案:将不需要的变量的闭包变量 赋值为unll 然后垃圾回收 -
9、ES5\6 中的继承
组合继承,原型链和构造函数的技术组合到一起实现继承
属性拷贝,将对象的成员赋值一份给需要的
网友评论