摘要:
Promise的前提概念 Promise是一个构造函数,用来生成Promise实例 Promise构造函数接受一个函数作为参数,该函数有两个参数,分别是resolve和reject resolve:成功时的回调 reject:失败时的回调 Promise分别有三个状态 1、pending :进行中 阅读全文
摘要:
Reflect Reflect拥有Object对象的一些内部方法,某些方法会同时在Object对象和Reflect对象上部署,也就是说Object对象上存在的方法,通过Reflect也可以访问到。 单论Reflect的话,可以这么理解,Reflect就是继承了Object的某些内置方法,并且提供了优 阅读全文
摘要:
Proxy Proxy(代理),首先理解代理是什么意思,才能更便于了解Proxy的作用。 Proxy是一个代理,可以这么理解,就相当于它是一个快递代理点,快递会运输到该代理点,我们取件只需要去对应的代理点取件即可,代理点说快递没到就是没到,代理点说要出示证件就要出示证件。 Proxy代理的是一个对象 阅读全文
摘要:
Map Object本质上是键值对的集合(Hash结构),但Object只能将字符串当做键,这就给Object带来了很大的限制。 let data = {} let s = { name : '东方不败' } data[s] = '西方求败' // 如果键传入非字符串的值,会自动为字符串 conso 阅读全文
摘要:
Symbol Symbol是es6引入的一个新的原始数据类型,是一个独一无二的值。 目前为止,js的数据类型有以下几种: 数据类型 | 说明 | undefined | undefined null | null boolean | 布尔值 string | 字符串 number | 数字 Bigi 阅读全文
摘要:
指数运算符 // 2 * 2 console.log(2 ** 2); // 4 // 2 * 2 * 2 * 2 console.log(2 ** 4); // 16 指数运算符是右结合,多个指数运算符连用时,从右边开始计算。 console.log(2 ** 3 ** 2); // 512 // 阅读全文
摘要:
属性名表达式 定义对象的属性有两种方式 1、直接使用标识符作为属性名 obj.name 2、以表达式作为属性名 obj['a'+'b'] = 10 let obj = {} obj.name = '孙悟空' // 孙悟空 obj['a' + 'b'] = 10 // 10 console.log(o 阅读全文
摘要:
剩余运算符 剩余运算符:...变量 可以将数组的值解构成单个单个的参数序列 console.log(...[1,2,3,4,5]); // 1 2 3 4 5 let { a, b, ...z } = { a: 1, b: 2, c: 3, d: 4 } // a 1 // b 2 // z { c 阅读全文
摘要:
定义箭头函数 ES6允许使用箭头 => 定义函数 let v = 100 // 箭头函数 let f = a => v; // 等同于 let f2 = function (a){ return v } // 等同于 let f3 = (a) => { return v } console.log( 阅读全文
摘要:
暂时性死区 暂时性死区也就是变量声明到声明完成的区块,这个区块是一个封闭的作用域,直到声明完成。 如果在变量声明之前使用该变量,那么该变量是不可用的,也就被称为暂时性死区。 var 没有暂时性死区,因为var存在变量提升 let、const有块级作用域,没有变量提升,存在暂时性死区 console. 阅读全文
摘要:
二进制和八进制表示法 ES6提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o或(0O)表示 0b111110111 503 // true; 0o767 503; // true 在es5开始,严格模式中,八进制不允许使用前缀0 表示,否则会报错 // 严格模式 (function 阅读全文