很多前端开发者认为JavaScript
中存在else if
语句,因为平时我们可以这样写代码:
var flag = 1
if (flag == 0) {
console.log('hello')
} else if (flag == 1) {
console.log('world')
} else {
console.log('hello world')
}
但事实上真的如此吗?事实上JavaScript
没有else if
语句,但是if
和else
只包含单条语句的时候可以省略代码块{}
,下面大家肯定不会陌生:
if(flag) doSomething();
// 加上省略的代码块应该是如下
if(flag) { doSomething(); }
大家明白了吧,其实else if
语句是单独的语句省略代码块{}
之后的简洁写法,而且else if
还能省掉一行代码缩进,所以实际应用中很受青睐,但这是我们自己发明的写法,不是JavaScript
规范语法的范畴。
var flag = 1
if (flag == 0) {
console.log('hello')
} else {
if (flag == 1) {
console.log('world')
} else {
console.log('hello world')
}
}
// 省略单独代码块的{}
if (flag == 0) {
console.log('hello')
} else
if (flag == 1) {
console.log('world')
} else {
console.log('hello world')
}
本文参考"你不知道的JavaScript(中)"103页。