首页 > 试题广场 >

知道哪些ES6,ES7的语法

[问答题]

ES6

  1. let const(块级作用域:{})
  2. 箭头函数(没有自己的this、super、arguments、new.target - 该属性一般放在构造函数中,一个函数如果被当作构造函数,通过new的方式使用,在这个构造函数中,new.target就等于这个构造函数,如果只是被当作一般的函数使用,返回值就是undefined)
  3. 扩展数组【find、findIndex、fill(str, startIndex, endIndex)、keys(数组key组成的数组迭代器)、values(数组的value组成的数组迭代器)等】、字符串方法【includes等】
  4. 模板字符串
  5. 解构赋值 const { PI } = Math;
  6. 模块化
  7. 形参默认值
  8. rest参数(函数参数的数量不确定时,在括号中使用...paramName,就可以将所有的参数存储到数组paramName中)
  9. 展开运算符(...)
  10. Map(类似于对象,普通对象的key只能是字符串,而Map的key可以是任意类型)、Set(类似于数组)
  11. Promises
  12. for ... of
  13. Symbol(每一个返回值都是唯一的,可以作为对象属性的标识符,Symbol('a') !== Symbol('a'))
  14. Generators迭代器
  15. ... (还有一些不常用的)
/* new.target */
function Person(name){
  if(new.target){
    this.name = name
  }else{
    throw('error')
  }
}
let p1 = new Person('Jack');
let p2 = Person('Jack');  // error
/* Generators */
function* genFunc() {
  var arr = [1, 2, 3, 4, 5];
  for(var i in arr){
    yield arr[i];
  }
}
var res = genFunc();
console.log( res.next().value );  // 1
console.log( res.next().value );  // 2
console.log( res.next().value );  // 3

ES7

  1. 数组方法扩展 includes
  2. 幂操作符**

ES8

  1. object.entries()
  2. Async Await
  3. ...(一些不常用的)

详细内容可以看知乎的这篇文章: 【从ES6到ES10的新特性万字大总结】https://zhuanlan.zhihu.com/p/342882092


编辑于 2021-11-25 22:35:05 回复(0)
es6:{
    let、const块级作用域
    模板字符串
    类class
    函数的默认参数和不定参数
    Promise
    箭头函数
    对象字面变量省略写法
    扩展运算符
    解构
    map、set
    操作数组的方法:each、map、reduce、filter、find、findOne
    模块module
    for...of
    Symbol
    Proxy
}
es7:{
    操作数组的方法: includes
    指数运算符: **
}
es8:{
    异步:async await
    遍历对象的方法:Object.keys()、Object.values()、Object.entries()
}
发表于 2021-04-27 14:00:46 回复(0)
es7??是啥呢??
发表于 2020-10-04 16:10:31 回复(0)