【关于JS没有else If语句】之前在酷安社区回复过这个评论被怼了。

在一个社区里因为回复了一句,JS本身不存在elseif语法结构,被怼后,我也没回复啥,就删除APP,退出了,想起来这个事,因为早上突然看到鸟哥的博客说PHP的elsif也是后面接一句语句,就想起来js了。

今天周六,就说说这个语句吧,Js里else后可以接一句statement,语句,语句可以分号结束也可以{}这样的,比如for,while都不需要分号。看下面的例子

image.png

如果只有if,发现是可以省略大括号的,后面接一句语句分号结束。如果需要else,那就必须在if后加括号了,但是else后面并不是强制的,同样else后也可以只写一个语句,以第一个语句结束为止,多语句请用大括号。

image.png

因为是命令式的写法,js的打括号会返回最后一个变量的值作为语句的返回值,所以上面是2。

可以看到 上面的语句其实就是:else{ if(1)2; }的去括号简写因为js允许省略else的大括号,而if语法又是一个完整的语句等同于 if (0) {}else xxx;的写法,就成了js的elseif写法,并不会造成语法错误,反倒是成了习惯写法,但是实际上可以写成单个if,因为elseif并没有少写多少代码,而单个if更加简单明了,不假思索就可以看的懂。