JavaScript语句

JavaScript语句.png

条件语句

if语句

switch语句

switch 在比较值时,使用的是全等操做符 === ,所以不会发生类型转换
switch的判断条件 expression 能够是 StringNumberBooleanchar枚举nullundefined
switch (expression) {
  case value1:
  // 代码块
  break;
  case value2:
  // 代码块
  ...
  
  default 
  // 代码块
}

迭代语句

while语句

do-while语句

for语句

for-in 语句

用来枚举对象的属性,枚举顺序不可预测
  1. 通常用于遍历对象的可枚举属性。
  2. 遍历数组索引

for-in、Object.keys 和 Object.getOwnPropertyNames 对属性遍历有什么区别?html

  • for-in 会遍历自身及原型链上的可枚举属性,能够使用hasOwnProperty()方法过滤掉原型链上的可枚举属性
  • Object.keys 会将对象自身的可枚举属性的 key 输出
  • Object.getOwnPropertyNames 返回一个由指定对象的全部自身属性的属性名(包括不可枚举属性但不会获取原型链上的属性。)组成的数组。

for-of语句(ES6)

  1. for-of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.可是不能遍历对象
  2. 遍历数组元素值

其余语句

break和continue语句

  1. break 跳出当前循环且再也不执行当前循环;continue 跳出当前循环进行下一次循环。
  2. break 若在switch 语句中,仅仅跳出当前所在switch 语句。

label语句

能够在代码中添加标签,以便未来使用。
应用场景:在嵌套循环中熟练应用 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会延长做用域。
大量使用 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);
}

debugger 语句

用来产生一个断点,代码的执行会停在断点的位置,这时使用调试器来输出变量的值。数组

参考文章:https://segmentfault.com/a/11...性能

相关文章
相关标签/搜索