语句
if 语句
条件判断语句
if (condition) statement else statement2
do-while 语句
先执行一次循环体,再检测退出条件
do {
statement
} while (expression)
while 语句
先检测退出条件,再执行循环体
while (expression) {
statement
}
for 语句
for (initialization; expression; post-loop-expression) {
statement
}
for-in 语句
一种严格的迭代语句,用于枚举对象中的非符号键属性。
ECMAScript 中对象的属性是无序的,因此 for-in 语句不能保证返回对象属性的顺序,根据浏览器而异。
如果 for-in 循环要迭代的变量是 null 或 undefined,则不执行循环体。
for (property in expression) statement
for-of 语句
一种严格的迭代语句,用于遍历可迭代对象的元素。
for-of 循环会按照可迭代对象的 next()方法产生值的顺序迭代元素。
如果尝试迭代的变量不支持迭代,则 for-of 语句会抛出错误。
for (property of expression) statement
ES2018对for-of语句进行了扩展,增加了for-await-of循环,以支持生成期约(promise)的异步可迭代对象。
标签语句
break 立即退出循环,强制执行循环之后的语句。
continue 立即退出循环,执行下一次循环内容。
with 语句
将代码作用域设定为特定的对象。
// with (expression) statement
let qs = location.search.substring(1)
let hostName = location.hostname
let url = location.href
// 等同上方
with(location) {
let qs = search.substring(1)
let hostName = hostname
let url = href
}
with 语句连接 location 对象。在语句内部,每个变量首先被认定为局部变量,其次会搜索 location 对象,看是否具有同名属性,若有,则被求值为 location 对象的属性。
❌ 严格模式不允许使用 with 语句,否则会报错。
switch 语句
流控制语句一种。
条件的值可以使用字符串甚至对象;可以是常量,也可以是变量或表达式;
比较每个条件时,会使用全等操作符,不会强制转换数据类型。
switch (expression) {
case value1:
statement
break
case value2:
statement
break
case value3:
statement
break
case value4:
// value4 跟 value5 执行相公内容
case value5:
statement
break
default:
statement
}