第123天 分析`('b' + 'a' + +'a' + 'a').toLowerCase()`返回的结果
Activity
ghost commentedon Aug 17, 2019
那个多出来的 + 是一元操作符,操作数是后面那个 'a',它被转成了 number
NaN
。因此加出来是 'baNaNa',toLowerCase 一下就变成 banana 了
LinStan commentedon Aug 17, 2019
’b‘ + =>'b'
'b' + 'a' => 'ba'
'ba' + (+'a') => 'ba' + (Number('a')) => 'baNaN'
'baNaN' + 'a' =>'baNaNa'
'baNaNa' .toLowerCase() =>'banana'
Konata9 commentedon Aug 19, 2019
'b'+'a'
为字符串拼接 =>ba
+ +'a'
第一个+
为字符串拼接的+
,+'a'
是把'a'
转为数字 => 由于'a'
无法转为数字,因此为NaN
+'a'
为字符串拼接因此结果为
'baNaNa'.toLowerCase()
=>banana
xiaoqiangz commentedon Jul 8, 2022
正解,主要是 + + 'a'会先将'a'转成数字这时候'a' 变成了 NaN => baNaNa.toLowerCase() => bababa