Appearance

【面试题】ES6+语法

sqs2023/5/19面试题js

1. ES6新加了哪些特性

  1. var、let、const
  2. 新增数组方法(entries,keys,values,find,fill等)
  3. 对象属性的简写
  4. 解构赋值
  5. rest/剩余参数
  6. 类型语法
  7. 模板字符串
  8. 异步语法promise
  9. map/set
  10. 模块化

2. 模板字符串与普通字符串的区别

  1. 多行字符串必须使用/n,模板字符串保留原格式
  2. 引用变量要+拼接,模板字符串则使用${}嵌入

3. 箭头函数与普通函数区别(箭头函数特点)

  1. 没有prototype,不能作为构造函数
  2. 没有this(this指向外部this),this指向也不能被修改
  3. 没有arguments参数

与普通函数还体现在语法上的差异

4. var、let、const的区别

varletconst
添加全局属性
允许重复声明
变量提升
暂时性死区
块级作用域
不允许修改
必须设初值

5. Symbol与BigInt的使用

6. Object、Map的区别

  1. key的类型:Map的key可以是任意值。Object的key只能是String,Number或者Symbol。
  2. 有序性:Map属性排序是push的顺序。Object的属性排序会按照key字符排序。
  3. 可迭代:Map可以使用for...of遍历,可使用...展开。Object不行
  4. 长度:Map可以直接拿到长度。Object不行。
  5. 操作元素的方式不同:map.set(key, value)obj.a/obj[a]
  6. Map是Object的实例对象。

7. Array、Set区别

  1. 存储空间:Set是不连续的存储空间,Array是连续的存储空间
  2. 唯一性:Set中元素不能重复,Array可以重复

8. Map与WeakMap、Set与WeakSet的区别

  • WeakMap优点:
    • 拥有和Map相同API
    • 不影响垃圾回收
  • WeakMap缺点:
    • key必须是引用类型,不能是原始值
    • 因为数据可能会被回收,所以不能遍历,也不能知道大小
  • 场景:
    • 当key都是引用类型,且不需要遍历数据时

WeakSet与之类似的道理

9. Proxy的使用

10. Reflect的使用

Last Updated 2023/5/20 22:17:30