ES6常用的特性

ES6增加了Module方便了JS模块化问题
Promise解决异步函数的回调地狱
Class的面相对象编程等问题

一、let和const定义变量

  • let
    块级作用域内有效、不能重复声明、不存在变量提升、暂时性死区

    “暂时性死区“是什么
    如果先调用了该变量,然后才用let去声明,那么浏览器就会报错。这在语法上称为 “暂时性死区”。
    “暂时性死区”的本质
    只要一进入当前作用域,所要使用的变量就已经存在了,但不可获取(否则报错),只有等到声明的那一行代码出现,才可以获取和使用。

  • const
    声明一个只读的常量、一旦声明不能改变

    Tips:一旦声明不能改变 (这里只是针对基本类型的数据,引用类型的数据是可以改变的,所以这里的不能改变是不可改变指针), 所以对于const声明的对象和数组还是可以改变的。如果真的想将对象冻结,应该使用Object.freeze方法。

二、对象与数组的解构赋值

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。
详情参考链接:https://blog.csdn.net/yiyueqinghui/article/details/89339546

三、函数的默认参数

function log(x, y = 'World') {
  console.log(x, y);
}
log('Hello') // Hello World

//首先,默认传的参数是空对象;其次,对该对象解构再赋值默认值
function foo({x, y = 5} = {}) {
  console.log(x, y);
}
foo()    // undefined  5

四、模板字符串

用反引号 (`) 标识

let month = '9月'
let moreStr = `
    today is ${month},
    The weather is nice ! 
`

五、箭头函数

ES5中 this 的指向是可变的
ES6内箭头函数中 thi的指向是固定的

ES6内箭头函数内this 指向的固定化,并不是因为箭头函数内部有绑定 this 的机制,实际原因是箭头函数内部根本没有自己的this,它内部的this 其实就是外层代码块的 this

Tips:
(1) 箭头函数体内的 this 对象,就是定义时所在的对象,而不是使用时所在的对象。
(2) 箭头函数不可以当构造函数,即不可以使用 new 命令,因为它没有 this,否则会抛出一个错误。
(3) 箭头函数没有自己的 this,所以不能使用 call()、apply()、bind() 这些方法去改变 this 指向。
(4) 箭头函数不可以使用arguments 对象,该对象在函数体内不存在。如果要用,可以使用rest参数代替。

六、数组的扩展(扩展运算符)

参考链接 :https://blog.csdn.net/yiyueqinghui/article/details/108604860

七、对象的扩展

  • 1、属性的简洁表示法
    ES6 允许在对象之中,直接写变量。这时,属性名为变量名, 属性值为变量的值

    属性简写:

    const foo = 'bar';
    const baz = {foo};
    baz // {foo: "bar"}
    
    // 等同于
    const baz = {foo: foo};
    

    方法简写:

    const o = {
      method() {
        return "Hello!";
      }
    };
    
    // 等同于
    const o = {
      method: function() {
        return "Hello!";
      }
    };
    
  • 2、属性名表达式
    ES6 允许定义对象属性名时,用变量或表达式作为属性名,把它们放在方括号内。

ES5属性名的写法 
var obj = {};
obj.foo = true;
obj['a' + 'bc'] = 123;

ES6属性名的写法
let propKey = 'foo';
let obj2 = {
  [propKey]: true,
  ['a' + 'bc']: 123
};


八、Promise对象

九、async、await函数

十、Class,面相对象编程

参考链接: https://www.cnblogs.com/chenwenhao/p/9974558.html#_label1

你可能感兴趣的:(ES6,ES6的新特性)