当我的一个 friend 偶然发现这段 JavaScript 代码时,我正在练习一些 JavaScript:
document.write(('b' + 'a' + + 'a' + 'a').toLowerCase());
以上代码回答"banana"
!
谁能解释一下为什么?
最佳答案
+'a'
解析为 NaN
(“非数字”),因为它将字符串强制转换为数字,而字符 a
不能解析为数字。
document.write(+'a');
banana
。
"ba"
加上NaN
,由于类型转换,将NaN
变成字符串"NaN"
,给出 baNaN
。
然后后面有一个a
,给出baNaNa
。
+ +
之间的空格是为了使第一个字符串连接和第二个一元加号(即“正”)运算符。
如果你使用 'ba'+(+'a')+'a'
得到相同的结果,解析为 'ba'+NaN+'a'
,即由于类型杂耍,相当于 'ba'+'NaN'+'a'
。
document.write('ba'+(+'a')+'a');
关于javascript - 为什么 ('b' +'a'++ 'a' + 'a').toLowerCase() 'banana' 的结果是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57456188/