JavaScript を練習していたとき、友人の一人が次の JavaScript コードを見つけました。
document.write(('b' + 'a' + + 'a' + 'a').toLowerCase());
上記のコードが答えです"banana"
! 誰か理由を説明できますか?
ベストアンサー1
+'a'
NaN
文字をa
数値として解析できないのに文字列を数値に強制変換するため、("Not a Number")として解決されます。
document.write(+'a');
nan
。
を加算するとNaN
、型変換により が文字列になり"ba"
、になります。その後に が続き、 になります。NaN
"NaN"
baNaN
a
baNaNa
間のスペースは+ +
、最初の 1 つを文字列連結にし、2 つ目を単項プラス (つまり「正」) 演算子にするためのものです。 を使用した場合も同じ結果になり'ba'+(+'a')+'a'
、 として解決されます'ba'+NaN+'a'
。これは、型のジャグリングにより と同等になります'ba'+'NaN'+'a'
。
document.write('ba'+(+'a')+'a');