('b'+'a'+ + 'a' + 'a').toLowerCase() の結果が 'banana' になるのはなぜですか? 質問する

('b'+'a'+ + 'a' + 'a').toLowerCase() の結果が 'banana' になるのはなぜですか? 質問する

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"baNaNabaNaNa

間のスペースは+ +、最初の 1 つを文字列連結にし、2 つ目を単項プラス (つまり「正」) 演算子にするためのものです。 を使用した場合も同じ結果になり'ba'+(+'a')+'a'、 として解決されます'ba'+NaN+'a'。これは、型のジャグリングにより と同等になります'ba'+'NaN'+'a'

document.write('ba'+(+'a')+'a');

おすすめ記事