从新巩固JS系列,都是比较基础的东西,能够进行查漏补缺,很快看完,这是第三篇。 其余JS从新巩固系列:javascript
//当条件为真时,执行语句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 时,执行 语句1,遇到break语句则跳出switch语句,若都没匹配到值,则执行default中的语句。
switch (表达式) {
case 值1:
语句1
break
case 值2:
语句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
//当 表示达 为真时,执行 语句1 直到 表达式 为假。
while ( 表达式 ) {
语句1
}
复制代码
注意:在语句1
中必定要对表达式
进行操做,使其在必定循环次数内变为假,不然会致使死循环。post
//先执行语句1,而后再根据表达式的真假状况来决定是否继续执行语句1
do {
语句1
} while ( 表达式 )
复制代码
注意:无论什么状况下,do while语句
总会先执行一次语句1
。性能
//首先执行初始化部分,而后进行循环条件的判断,若为真,则执行语句1,最后再执行更新表达式部分。若为假,则结束for循环。
for ( 初始化; 循环条件; 更新表达式) {
语句1
}
复制代码
注意: 初始化
和更新表达式
部分都不是必需的,初始化
部分能够放在for语句外部,而更新表达式
部分能够放在语句1
中。ui
用于遍历对象的属性。spa
//遍历对象的属性
for ( 属性名 in 对象) {
语句1
}
复制代码
注意: for in
语句也会遍历原型链上的属性(原型链相关可参考:帮你完全搞懂JS中的prototype、__proto__与constructor(图解)),若只想遍历对象自身的属性,可使用如下方式:.net
for ( let 属性名 in 对象) {
if ( 对象.hasOwnProperty( 属性名 ) ) {
语句1
}
}
复制代码
continue语句用于循环语句中,跳过当前的循环,进入下一次循环。prototype
break语句用于控制流程中,直接跳出循环语句或者switch语句。code
/** * 将可能发生异常的 语句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! */
复制代码
可让咱们在访问对象属性时更加简短。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
复制代码