switch 在比较值时,使用的是全等操做符 === ,所以不会发生类型转换
switch的判断条件 expression 能够是String
、Number
、Boolean
、char
、枚举
、null
、undefined
switch (expression) { case value1: // 代码块 break; case value2: // 代码块 ... default // 代码块 }
用来枚举对象的属性,枚举顺序不可预测
for-in、Object.keys 和 Object.getOwnPropertyNames 对属性遍历有什么区别?html
能够在代码中添加标签,以便未来使用。
应用场景:在嵌套循环中熟练应用 break, continue 与 Label 能够精确的返回到你想要的程序的位置。express
let count = 0; for (let i = 0; i < 3; i++) { for (let j = 0; j < 3; j++) { if (i === 1 && j === 1) { break; } count++; } } console.log(count); // 7 //i = 0;i = 0 1 2 //j = 1;i = 0 1 //j = 2;i = 1 2
let count = 0; outBreak: for (let i = 0; i < 3; i++) { for (let j = 0; j < 3; j++) { if (i === 1 && j === 1) { break outBreak; } count++; } } console.log(count); //4
将代码的做用域设置到一个特定的对象中。主要目的是为了简化屡次编写对同一个对象的操做。
严格模式下不容许使用 with 语句。
with会延长做用域。
大量使用 with 语句会形成程序性能降低。segmentfault
let obj = { a: 123, b: 456, }; let a = 2; with (obj) { console.log(a);//123 }
let obj = { a: 123, b: 456, }; console.log(obj.a); console.log(obj.b); //用 with 简化 with (obj) { console.log(a); console.log(b); }
用来产生一个断点,代码的执行会停在断点的位置,这时使用调试器来输出变量的值。数组