
什么是 ECMAScript ?
1.常量 const,let
声明一个常量(变量一旦赋值, 就不可以重新赋值)
命名不能重复
不能变量提升
会形成一个块级作用域
const a = 'hello';const a = 'word'; //报错 Uncaught SyntaxError: Identifier 'a' has already been declareda = '你好'; //报错 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 instancelet 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;
// truemyCar instanceof Vehicle;
//true7.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: 10console.log(multiply(5));
// expected output: 510.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() 函数用来获取一个对象的所有自身属性的描述符,如果没有任何自身属性,则返回空对象。

支付宝打赏
微信打赏













