JavaScript基础语法---流程分支

JS语法

语句块

JS使用{}构成语句块。
ES6之前语句是没有作用域的,从ES6开始支持块作用域,let声明的变量只能在块作用域中可见。

function hello(){
    let a = 1;
    var b = 2; // b变量只能在当前函数作用域中有效
    c = 3;
}

hello()

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

console.log(a)  //不可见
console.log(b)  //不可见
console.log(c)  //可见
console.log(d)  //不可见
console.log(e)  //可见
console.log(f)  //可见
console.log(g)  //可见
console.log(h)  //可见

流程分支

条件分支

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

JavaScript中的false和下面等效

false、undefined、null0NaN、控字符串""

switc…case…分支语句

switch (expression) {
    case label_1:
        statements_1
        [break]
    case label_2:
        statements_2
        [break]
    ...
    default:
        statements+def
        [break]
}

switch中case的判断是===的判断,即数据类型和值的双重判断,这点要注意。
另外switch的判断条件可以是String、Number、Boolean、char、枚举、null、undefined

示例

let x = 3
switch (x) {
    case 1:
        console.log("1")
        break
    case 2:
        console.log("2")
        break
    case 3:
        console.log("3")
        // break
    default:
        console.log("default")
}

总结:
1.default关键字规定匹配不存在的时候做的事情
2.如果case语句忘记写break,就会顺序往下执行到有break的地方

for循环

c风格for循环

for (initialExpression; Condition; incrementExpression) {
    statement
}

具体执行顺序, 先执行initialExpression语句,然后condition判断,满足执行statement语句,然后执行increamentExpression语句,显然再condition,这就是执行顺序

示例

for (let i=0;i<10;i+=3){
    console.log(i)  // 0 3 6 9
}

for (let i=0;i<10;i+=3){
    console.log(i++)  // 0 4 8
}

for (let i=0;i<10;i+=3){
    console.log(++i)  // 1 5 9
}

死循环

for (;;) {
    statement
}

while循环和do…while循环

while循环
条件满足键入循环,条件为真,继续循环

while (condition){
    statement
}

do…while循环
先进入循环,然后判断,条件为真,就继续循环

do
    statement
while (condition);

示例

let x = 10
while (x--) {
    console.log(x)  // 9 - 0
}
console.log("========")
do {
    console.log(x)  // -1 - 10
}
while (x++<10)

死循环

while (true);

for…in和for…of循环

对象操作语句for…in用来遍历对象的属性

for (element in object) {
    console.log(element)
}

数组的遍历

let x = new Array("a","b","c")
// 普通的遍历
for (i in x) {
    console.log(i, x[i], typeof x[i])
}

//C风格遍历
for (let i=0; i<x.length; i++) {
    console.log(i, x[i],typeof x[i])
}

// of遍历直接取值,ES6的新语法,of后面必须是迭代器
for (i of x) {
    console.log(i)
}

// 遍历对象
let obj = {
    a:1,
    b:"2a",
    c:true
}
for (i in obj) {
    console.log(i, obj[i])
}

总结
1.for…in循环返回的是索引或者key,需要间接访问到值。
2.for…of不能迭代一个普通对象,原因是of后面必须是一个迭代器,可类比python中的for x in iterable

breakcontinue
break结束当前循环
continue中断当前循环,直接进入下一次循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值