1. ホーム
  2. javascript

[解決済み] ('b'+'a'+ +'a').toLowerCase() の結果はなぜ 'banana' なのですか?

2022-02-27 08:20:23

質問

私がJavaScriptを練習しているとき、友人の一人がこのJavaScriptのコードを見つけました。

document.write(('b' + 'a' + + 'a' + 'a').toLowerCase());

上記のコードでは "banana" ! どなたか理由を教えてください。

解決方法は?

+'a' は、次のように解決されます。 NaN ("Not a Number")は、文字列を数字に強制するためです。 a は数字としてパースできない。

document.write(+'a');
小文字にすると、次のようになります。 banana .

追加する NaN から "ba" ターン NaN を文字列 "NaN" 型変換により baNaN . そして、そこに a を与え、その後ろに baNaNa .

の間のスペースは + + は、1つ目を文字列の連結、2つ目を単項のプラス(つまり "positive")演算子にするためのものです。 を使っても同じ結果になります。 'ba'+(+'a')+'a' として解決されます。 'ba'+NaN+'a' と等価である。 'ba'+'NaN'+'a' は、タイプジャグリングにより

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