小编典典

为什么 ('b'+'a'+ + 'a' + 'a').toLowerCase() 'banana' 的结果是?

all

当我的一个朋友遇到这个 JavaScript 代码时,我正在练习一些 JavaScript:

document.write(('b' + 'a' + + 'a' + 'a').toLowerCase());

上面的代码回答"banana"!谁能解释为什么?


阅读 159

收藏
2022-03-06

共1个答案

小编典典

+'a'解析为NaN(“Not a Number”) 因为它将字符串强制转换为数字,而字符a不能被解析为数字。

document.write(+'a');

小写它变成banana.

由于类型转换,添加NaNto"ba"变成NaN字符串,给出. 然后有一个背后,给予。"NaN"``baNaN``a``baNaNa

之间的空间+ +是使第一个字符串连接和第二个一元加号(即“正”)运算符。如果您使用'ba'+(+'a')+'a',
解析为,您将获得相同的结果'ba'+NaN+'a',这相当于'ba'+'NaN'+'a'由于类型杂耍。

document.write('ba'+(+'a')+'a');
2022-03-06