ES6
Sink_x0
这个作者很懒,什么都没留下…
展开
-
ES6之Map和WeakMap
MapObject 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。Map 的键实际上是跟内存地址绑定的,只要内存地址不一样,就视为两个键。这就解决了同名属性碰撞(clash)的问题。如果 Map 的键是一个简单类型的值(数字、字符串、布尔值),则只要两个值严格相等,Map 将其视为一个键,比如0和-0就是一个键,布尔值true和字符串true则是两个不同的键。另外,undefin原创 2020-09-02 00:04:19 · 104 阅读 · 0 评论 -
ES6之Set和WeakSet
SetSet本身是一个构造函数,用来生成 Set 数据结构。它类似于数组,但是成员的值都是唯一的,没有重复的值。const s = new Set();[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));for (let i of s) { console.log(i); // 2 3 5 4}// 去除数组的重复成员[...new Set(array)]// 去除字符串里面的重复字符[...new Set('ababbc')].jo原创 2020-08-15 22:20:58 · 92 阅读 · 0 评论 -
ES6之Symbol
JavaScript 原本有六种数据类型,分别是undefined、null、Boolean、String、Number、Object。ES6 引入了一种新的原始数据类型Symbol,它表示独一无二的值。Symbol函数前不能使用new命令,否则会报错。这是因为生成的 Symbol 是一个原始类型的值,不是对象,也不能添加属性。let s = Symbol();typeof s // "symbol"Symbol函数可以接受一个字符串作为参数,表示对 Symbol 实例的描述,主要是为了在控制台显原创 2020-08-14 23:54:31 · 101 阅读 · 0 评论 -
ES6解构赋值
数组的解构赋值1、只要等号两边模式相同,左边的变量就会被赋予对应的值。可嵌套,可忽略。let [a, b, c] = [1, 2, 3];2、不完全解构,即等号左边的模式只匹配一部分的等号右边的数组,解构依然可以成功。如果解构不成功,变量的值等于undefined。let [a, [b], d] = [1, [2, 3], 4]a //1b //2c //4如果等号右边不是数组(不是可遍历的结构)将会报错,可以是字符串。Set结构也可以使用数组的解构赋值let [x, y, x] =原创 2020-08-12 12:09:45 · 102 阅读 · 0 评论 -
let、var、const区别
let1、let声明的变量只在它所在的代码块有效,在代码块之外引用会报错,存在块级作用域2、let不存在变量提升会报错。var存在变量提升,即变量可以在声明之前使用,值为undefined3、let存在暂时性死区,在代码块内使用let声明变量之前,该变量是不可使用的,都属于该变量的“死区”4、let不允许在相同作用域内重复声明同一个变量,var在同一个作用域内声明同一个变量后面会覆盖前面的const1、const用来声明一个常量,一旦声明其值不可更改。所以const在声明的时候必须要初始化,不能原创 2020-08-12 11:03:08 · 121 阅读 · 0 评论