作者 | Arjun Vijay Prakash 译者 | 明明如月
责编 | 夏萌
出品 | CSDN(ID:CSDNnews)
昨晚,我遇到了一个颇为有趣的 JavaScript 问题。我敢保证,除非你提前看答案,否则很难回答出来。
请问这段代码的输出结果是什么?
可选择的答案如下:
这个问题表面看起来不难,但当我公布答案后,可能让你惊掉下巴。
所有上述选项都是错的!请问,你选对了吗?
答案将在5秒后公布。
5.
4.
3.
2.
1.
答案是 "banana"
JavaScript 真是匪夷所思
你可能诧异不已、质问我 “你疯了吗?”,怎么可能会是这个结果?请你先冷静冷静,让我为你分析分析。
解析工作原理
下面,让我们分步解释代码的运作原理:
"b" + "a" 连接字符串,得到 "ba"。
+ + "a" 试图将字符串 "a" 转换为数字,由于 "a" 非有效数字,所以结果为 NaN("非数字")。
"ba" + NaN 将字符串 "ba" 与值 NaN 连接,得到 "baNaN"。
"baNaN" + "a" 将 "baNaN" 与 "a" 连接,得到 "baNaNa"。
最后,调用 .toLowerCase() 方法,将字符串 "baNaNa" 所有字符转换为小写,得到 "banana"。
所以,代码的最终输出就是 "banana"。
领取专属 10元无门槛券
私享最新 技术干货