条件语句
if语句
switch语句
switch 在比较值时,使用的是全等操作符 === ,因此不会发生类型转换
switch的判断条件 expression 可以是String
、Number
、Boolean
、char
、枚举
、null
、undefined
switch (expression) {
case value1:
// 代码块
break;
case value2:
// 代码块
...
default
// 代码块
}
迭代语句
while语句
do-while语句
for语句
for-in 语句
用来枚举对象的属性,枚举顺序不可预测
- 一般用于遍历对象的可枚举属性。
- 遍历数组索引
for-in、Object.keys 和 Object.getOwnPropertyNames 对属性遍历有什么区别?
- for-in 会遍历自身及原型链上的可枚举属性,可以使用hasOwnProperty()方法过滤掉原型链上的可枚举属性
- Object.keys 会将对象自身的可枚举属性的 key 输出
- Object.getOwnPropertyNames 返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不会获取原型链上的属性。)组成的数组。
for-of语句(ES6)
- for-of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象
- 遍历数组元素值
其他语句
break和continue语句
- break 跳出当前循环且不再执行当前循环;continue 跳出当前循环进行下一次循环。
- break 若在switch 语句中,仅仅跳出当前所在switch 语句。
label语句
可以在代码中添加标签,以便将来使用。
应用场景:在嵌套循环中熟练应用 break, continue 与 Label 可以精确的返回到你想要的程序的位置。
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 语句会造成程序性能下降。
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...
- 文章来源:思否
- 版权声明:文章来源于网络采集,版权归原创者所有,均已注明来源,如有侵权请联系管理员删除。