ES678 重要的知识点

1.常量 const,let

声明一个常量(变量一旦赋值, 就不可以重新赋值)

命名不能重复

不能变量提升

会形成一个块级作用域

const a = 'hello';
const a = 'word';    //报错 Uncaught SyntaxError: Identifier 'a' has already been declared
a = '你好';    //报错 Uncaught TypeError: Assignment to constant variable.

2.模板字符串

字符串和变量的拼接,在拼接的整个作用域内加``(就是键盘1前面那个键的反引号),变量和字符串都不再加'',变量使用${变量名};

var name='张三';
console.log(`我的名字叫${name}`);

3.解构赋值

let obj={
  name:'张三',
  sex:'男';
  }

let { name, sex }=obj;
console.log(name);    //张三
console.log(sex);    //男

4.对象的扩展

对象中的属性可以简写

对象中的方法也可以简写

let obj = {
name: name    //可以简写成一个 name
}

5.rest参数

function fn(a, b, ...arr) {
console.log(a, b, arr);    //1 2 [3, 4, 5, 6, 7]
}
fn(1,2,3,4,5,6,7);

6.类和面向对象

注意类的定义不是一般的对象,因此,类的成员间没有逗号。

创造一个类的对象时,需要使用 new 关键词。继承一个基类时,使用 extends:

class Vehicle {
   constructor(name) {
      this.name = name;
      this.kind = 'vehicle';
   }
   getName() {
      return this.name;
   }  
}
 
// Create an instance
let myVehicle = new Vehicle('rocky');


创造一个类的对象时,需要使用 new 关键词。继承一个基类时,使用 extends:

class Car extends Vehicle {
   constructor(name) {
      super(name);
      this.kind = 'car'
   }
}
 
let myCar = new Car('bumpy');
 
myCar.getName(); // 'bumpy'
myCar instanceof Car; // true
myCar instanceof Vehicle; //true

7.Math

Math 对象新增了几个方法。

Math.sign 返回数字的符号,结果为 1、-1 或 0。

Math.trunc 返回无小数位的数字。

Math.cbrt 返回数字的立方根。

8.Map 和 Set 数据结构

 Set的方法:

add(value):添加一个值,返回Set结构本身
delete(value):删除某个值,返回布尔值
has(value):返回布尔值,表示是否是成员
clear():清除所有成员,无返回值
keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach():使用回调函数遍历每个成员

keys,values,entries三个方法其实返回的值是一样的.


9.默认值

function multiply(a, b = 1) {
  return a * b;
}

console.log(multiply(5, 2));
// expected output: 10

console.log(multiply(5));
// expected output: 5

10.proxy

代理对象

这个新的类型用处很多,建议之间看参考文档.proxy

11.Pormise

Promise 对象用于表示一个异步操作的最终状态(完成或失败),以及该异步操作的结果值。参考文档.Promise

还有许多的新增方法

ES7新特性

1.Array.prototype.includes()

let arr = ['react', 'angular', 'vue'];
if (arr.includes('react'))
{
    console.log('react存在');
}

2.指数操作符

在ES7中引入了指数运算符****具有与 Math.pow(..) 等效的计算结果

console.log(2**10);// 输出1024

ES8新特性

1.async/await

在ES8中加入了对async/await的支持,也就我们所说的异步函数,这是一个很实用的功能。 async/await将我们从头痛的回调地狱中解脱出来了,使整个代码看起来很简洁。

2.Object.values()

Object.values() 是一个与  Object.keys() 类似的新函数,但返回的是Object自身属性的所有值,不包括继承的值。

const obj = {a: 1, b: 2, c: 3};
const values=Object.values(obj1);
console.log(values);//[1, 2, 3]

3.Object.entries

Object.entries()函数返回一个给定对象自身可枚举属性的键值对的数组。

4.String padding

在ES8中String新增了两个实例函数 String.prototype.padStart 和 String.prototype.padEnd,允许将空字符串或其他字符串添加到原始字符串的开头或结尾。

5.Object.getOwnPropertyDescriptors()

Object.getOwnPropertyDescriptors() 函数用来获取一个对象的所有自身属性的描述符,如果没有任何自身属性,则返回空对象。


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论

精彩评论
  • 2019-07-14 17:22:25

    虽然看不懂,但感觉很牛逼,感谢分享

  • 2019-07-20 15:10:13

    写的真好,推荐一下我们平台火投票

Top

分享: