为什么 ('b'+'a'+ + 'a' + 'a').toLowerCase() 'banana'的结果?
2022-08-29 22:39:02
我正在练习一些JavaScript时,我的一个朋友遇到了这个JavaScript代码:
document.write(('b' + 'a' + + 'a' + 'a').toLowerCase());
上面的代码答案!谁能解释一下为什么?"banana"
我正在练习一些JavaScript时,我的一个朋友遇到了这个JavaScript代码:
document.write(('b' + 'a' + + 'a' + 'a').toLowerCase());
上面的代码答案!谁能解释一下为什么?"banana"
+'a'
解析为(“不是数字”),因为它将字符串强制转换为数字,而字符不能解析为数字。NaN
a
document.write(+'a');
banana
由于类型转换,将 to 添加到字符串中,得到 .然后有一个背后,给予.NaN
"ba"
NaN
"NaN"
baNaN
a
baNaNa
中间的空格是使第一个字符串串联和第二个字符串成为一元加号(即“正”)运算符。如果使用 ,则得到相同的结果,解析为 ,这等效于由于类型杂耍。+ +
'ba'+(+'a')+'a'
'ba'+NaN+'a'
'ba'+'NaN'+'a'
document.write('ba'+(+'a')+'a');