我是靠谱客的博主 感性香烟,最近开发中收集的这篇文章主要介绍JS中被误解的else if语句,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我们知道 if条件判断是在各大语言中都很常见的,同时 else if 也在各大语言中常见,甚至在python中还拥有了 elif的简写。
所以同样的,在JavaScript中,也经常能够看到else if 的影子。
但是在我看了JavaScript高级程序设计这本书后,发现,在书中,只有if 和 else的定义,并没有所谓else if 的定义。
如下图


我有点不信邪,看了看一些Java的教程书籍,发现里面是有else if 的定义的。
于是接下来我去查看了ecma262的文档 发现了这样的一段话。


这里讲到如果if中的表达式不明确,那么会在else中找到更加可能的选项。(来自ECMA-262)

并且与红宝书上的定义结合起来,我们可以发现,在
if(condition) statement else statement2 这样的表达式中
statement2 并不是一定需要和if有关,或者是一个代码块(即直接else) 所以我们可以断定,JavaScript中没有else if 。else if中的if 是在原本的condition不成立的条件下新建立的一个if语句。
我们可以通过实践来验证一下

let a =true
if(a) {
	console.log('a is true')
} else a = 123
	console.log(a)

这段代码输出什么?

我们可以看到 因为 a 为 true 所以else中的内容并没有改变,如果我们将if中的判断改为!a呢?

let a =true
if(!a) {
	console.log('a is true')
} else a = 123
console.log(a)

来看输出:


我们可以看到。此时运行的是else中的语句,即将a改为数字123,并且在if外输出了a,也就是123.
不仅如此,如果你尝试在else的后面声明某个变量也是可以的,大家可以自己动手尝试一下。
说明我们else后跟着赋值是没有问题的,不一定是代码块或者是if。

最后

以上就是感性香烟为你收集整理的JS中被误解的else if语句的全部内容,希望文章能够帮你解决JS中被误解的else if语句所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部