ES6 -- EMA Script 6新特性

  • let --块级作用域 与var区别:let不可重复定义、不可声明前置
  • const --定义常量
  • class --定义类 可用extends继承 es5是原型链继承
  • 箭头函数 --定义函数 () => {} //this指向定义时父作用域的this, call和apply均不可改变指向
  • class、let、const均不属于全局对象的属性,均不可声明前置,var是全局对象的属性
  `${}` --模板字符串 ${}里边是js代码
  • ...args 三点语法,可解构对象/数组、获取剩余参数,代替arguments对象
  • 形参设置默认参数 例 function(x,y=111){ }
  • for of 遍历实现迭代器
  • 提供Promise对象 用来处理异步操作
  • 增加Symbol数据类型
  • module概念的提出

相关题目

  1. 定义函数 只有在函数体中才生效
let t = this ? g = 4 : h = 8
class i { }
let ttt = class { }
console.log(11, typeof i, typeof t, typeof g, typeof h, ttt, t)
结果
let t = this? function g(){}:function h(){}
class i { }
let ttt = class { }
console.log(11, typeof i, typeof t, typeof g, typeof h, ttt, t)
结果
let t = this? class g{}:class h{}
class i {}
let ttt = class { }
console.log(11, typeof i, typeof t, typeof g, typeof h, ttt, t)
结果

2 (String,Array)

console.log(typeof (new (class F extends (String, Array,String){})).substring)
//"function"

console.log(typeof (new (class F extends (String, Array){})).substring)
//"undefined"

你可能感兴趣的:(ES6 -- EMA Script 6新特性)