炬哥技术博客

ES678 重要的知识点

炬哥 2019年06月04日 前端开发 1559 0

faedab64034f78f040ee982971310a55b2191c06_看图王.jpg

什么是 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; 
//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: 10console.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() 函数用来获取一个对象的所有自身属性的描述符,如果没有任何自身属性,则返回空对象。



打赏 支付宝打赏 微信打赏

声明:本文由发布,如需转载请注明出处。

发布评论

分享到:

炬哥技术博客

欢迎炬哥微信号:4508175 (左侧二维码扫一扫)

视频如何去掉水印呢?水印的神器软件
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,您可以吐槽或者留言。