Set
Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。
NaN 是与 NaN 相等的(虽然 NaN !== NaN),剩下所有其它的值是根据 === 运算符的结果判断是否相等。
基本集合操作
1 | let setA = new Set([1, 2, 3, 4]), |
NaN 是与 NaN 相等的(虽然 NaN !== NaN),剩下所有其它的值是根据 === 运算符的结果判断是否相等。
基本集合操作
1 | let setA = new Set([1, 2, 3, 4]), |
调用 new Array()构造器时, 根据传入参数的类型与数量的不同,实际上会导致一些不同的结果。
1 | items = new Array(3, "2"); |
如果使用多个参数(无
论是否为数值类型)来调用,这些参数也会成为目标数组的项。
1 | let items = Array.of("2"); |
向函数传递参数,使用 Array.of() 而非 Array 构
造器能够确保行为一致。
1 | function createArray(arrayCreator, value) { |
JavaScript 允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点。
但是,这种表示法只限于码点在\u0000~\uFFFF之间的字符。超出这个范围的字符,必须用两个双字节的形式表示。
1 | "\uD842\uDFB7" |
加入大括号
1
2 "\u{20BB7}"
// "𠮷"
JavaScript 共有 6 种方法可以表示一个字符
1 | '\z' === 'z' // true |
1 | var s = "𠮷"; |
必须用圆括号包裹解构赋值语句,这是因为暴露的花括号会被解析为代码块语
句,而块语句不允许在赋值操作符(即等号)左侧出现。圆括号标示了内部的花括号并不是
块语句、而应该被解释为表达式,从而完成赋值操作。
1 | let node = { |
顺序不同也没事
也可以结合冒号和等号一起使用
1 | let {width: w = 100, height: h = 200, title} = options; |
实际上是这样 let { foo: foo, bar: bar } = { foo: “aaa”, bar: “bbb” };
const 会阻止对于变量绑定与变量自身值的修改。并不会阻止对变量成员的修改
1 | const person = { |
暂时性死区
使用 let 或 const 声明的变量,在达到声明位置之前都是无法访问的,试图访问会导致一
个引用错误,即便所用的操作通常是安全的,例如使用 typeof 运算符
1 | if (condition) { |
1 | var x = 10; |