从新巩固JS(三)——JavaScript语句

从新巩固JS系列,都是比较基础的东西,能够进行查漏补缺,很快看完,这是第三篇。 其余JS从新巩固系列javascript

1. 条件语句

1.1 if else语句

//当条件为真时,执行语句1,条件为假时,执行语句2。其中,else部分能够省略
if (条件) { 
    语句1 
} else { 
    语句2 
}

//例子:
let score = 75
if ( score > 80) {
    console.log('A')
} else if ( score > 60) {
    console.log('B')
} else {
    console.log('C')
}
// score为75,小于80但大于60,故输出: B
复制代码

1.2 switch语句

// 当 表达式的值 等于 值1 时,执行 语句1,遇到break语句则跳出switch语句,若都没匹配到值,则执行default中的语句。
switch (表达式) {
    case1: 
        语句1
        break
    case2: 
        语句2
        break
    default: 
        语句3
        break	
}

//例子
let score = 'B'
switch ( score ) {
    case 'A':
        console.log('> 80')
        break
    case 'B':
        console.log('60 ~ 80')
        break
    default :
        console.log('< 60')
}
// score的值跟case的'B'相匹配,故输出: 60 ~ 80,遇到break,结束switch语句
复制代码

注意:通常状况下,咱们在每一个case语句后都要加上break语句来跳出switch语句。若不添加,则会执行匹配到的case语句后的全部语句,直到遇到break为止。java

2. 循环语句

2.1 while语句

//当 表示达 为真时,执行 语句1 直到 表达式 为假。
while ( 表达式 ) {
    语句1
}
复制代码

注意:在语句1中必定要对表达式进行操做,使其在必定循环次数内变为假,不然会致使死循环。post

2.2 do while语句

//先执行语句1,而后再根据表达式的真假状况来决定是否继续执行语句1
do {
    语句1
} while ( 表达式 )
复制代码

注意:无论什么状况下,do while语句总会先执行一次语句1性能

2.3 for语句

//首先执行初始化部分,而后进行循环条件的判断,若为真,则执行语句1,最后再执行更新表达式部分。若为假,则结束for循环。
for ( 初始化; 循环条件; 更新表达式) {
    语句1
}
复制代码

注意初始化更新表达式部分都不是必需的,初始化部分能够放在for语句外部,而更新表达式部分能够放在语句1中。ui

2.4 for in语句

用于遍历对象的属性。spa

//遍历对象的属性
for ( 属性名 in 对象) {
    语句1
}
复制代码

注意for in语句也会遍历原型链上的属性(原型链相关可参考:帮你完全搞懂JS中的prototype、__proto__与constructor(图解)),若只想遍历对象自身的属性,可使用如下方式:.net

for ( let 属性名 in 对象) {
    if ( 对象.hasOwnProperty( 属性名 ) ) {
        语句1
    }
}
复制代码

3. 控制语句

3.1 continue语句

continue语句用于循环语句中,跳过当前的循环,进入下一次循环。prototype

3.2 break语句

break语句用于控制流程中,直接跳出循环语句或者switch语句。code

4. 异常捕获语句

/** * 将可能发生异常的 语句1 放到try语句块中,若 语句1 执行时有异常,则被 catch语句 捕获, * 接着执行 语句2 ,最后再执行 finally语句块 中的 语句3。 * 其中 finally语句块 中的 语句3,无论 语句1 是否有异常都会执行。 */
try {
    语句1
} catch ( exception ) {
    语句2
} finally {
    语句3
}

//例子
try {
    console.log(myName)
} catch ( exception ) {
    alert( exception)
} finally {
    alert('bad dream!')
}
/** * 在try语句块中,咱们试图输出变量myName的值,可是变量myName并未定义,因此出现异常被catch语句块捕获, * 而后弹窗出现内容:ReferenceError: myName is not defined, * 最后再执行finally语句,弹窗出现内容:bad dream! */
复制代码

5.with语句(不推荐使用)

可让咱们在访问对象属性时更加简短。with语句在性能上存在问题,以及在做用域上可能会引发没必要要的混淆,ES5的严格模式中也禁用了该语句,不推荐使用。对象

with ( 表达式 ) {
    语句
}

//例子:
let cc = {
    name: 'cc',
    age: 100,
    company: {
        name: 'BEST',
        address: 'Hang Zhou'
    }
}

with(cc) {
    console.log(`company name:${company.name}, company address: ${company.address}`)
}
//输出: company name:BEST, company address: Hang Zhou

//替代的方法:
let company = cc.company
console.log(`company name:${company.name}, company address: ${company.address}`)
//输出: company name:BEST, company address: Hang Zhou
复制代码
相关文章
相关标签/搜索