NodeJS 控制语句

发布时间 2023-07-20 15:17:24作者: kntvops

二、控制语句

2. 语句块

JS 使用大括号构成语句块,let只能在块作用域内可见

function fn() {
    let a = 1;
    var b = 2;
    c = 3
}

let d =100
if (1) {
    let d = 4;
    var e = 5;
    f = 6;
    if (true) {
        console.log(d) 
        console.log(e)
        console.log(f)
        console.log("~~~~~~~~~~~~~~~~~")
        g = 10
        var h = 11
    }
}

// console.log(a) // 不可见,var声明在函数内位局部变量 
// console.log(b) // 不可见

// console.log(c) // fn()为调用前不可见

console.log(d) // 100 , 块作用域内使用let不可见
console.log(f) // 6 全局可见
console.log(g) // 10
console.log(h) // 11 如果 var 声明不在函数内则会提升为全局变量

2. 流程控制

2.1 条件分支

if (cond1) {
	...
}
else if (cond2) {
	...
}
else {
 	...
}

2.2 switch-case分支语句

Switch-case 语句要注意穿透问题,一定要恰当的使用break语句,否则会继续顺序向下执行

let x = 3
switch (x) {
    case 0:
        console.log('zero')
        break;
    case 1:
        console.log('one')
    case 2:
        console.log('two')
        break
    case 3:
        console.log('three')
    case 4:
    case 5:
        console.log('five')
    default:
        console.log('defaults')
        break;
}
// three
// five
// defaults

2.3 for 循环

for(let i=1;i<10;i++) {
    console.log(i)
}
console.log("~~~~~~~~~~~~~~~~")
for (var x=0,y=9;x<10;x++,y--) {
    console.log(x*y)
}
// 1
// 2
// 3
// 4
// 5
// 6
// 7
// 8
// 9
// ~~~~~~~~~~~~~~~~
// 0
// 8
// 14
// 18
// 20
// 20
// 18
// 14
// 8
// 0

2.4 while循环

let x=5;
while(x--) {
    console.log(x);
}
// 4
// 3
// 2
// 1
// 0

2.5 do-while循环

let x=0;

do {
    console.log(x);
} while(x++<5)
// 0
// 1
// 2
// 3
// 4
// 5

2.6 for-in循环 & for-of

arr = ['a', 'b', 'c']

for (i in arr) {
    console.log(i, arr[i])
}
// 0 a
// 1 b
// 2 c

for (x of arr) {
    console.log(x)
}
// a
// b
// c
let obj = {
    a: 1,
    b:'ssss',
    c: true
}

for (i in obj) {
    console.log(i, obj.i)
}
// a undefined
// b undefined
// c undefined

for (i in obj) {
    console.log(i, obj[i])
}
// a 1
// b ssss
// c true

for (let key in obj) {
    console.log(`${key}: ${obj[key]}`)
}
// a: 1
// b: ssss
// c: true

2.7 break & continue

  • Break: 结束当前循环
  • continue: 中断当前循环,直接进入下一次循环