TEST12138

TEST12138

长路漫漫,唯心作伴。

前端基礎のJavaScriptの加算と暗黙の型変換

先に小さなテストを行いましょう。バイドやコードのテストは行わないでください。
以下の出力は何ですか。

1 + 1

'1' + 1

1 + true

NaN + 1

NaN + '1'

null + 1

null + '1'

[1] + 1

[1,2] + [1]

[1] + {n : 1}

もし上記の演算について少し曖昧な点がある場合、おそらく加算の暗黙の型変換が理解できていないと思われます。
加算のルールは何でしょうか。
一つの図で明確に理解できます。

image

では、例を見てみましょう。

image

上記の図を見て整理しましょう。
両方がプリミティブ型であり、文字列ではないため、両方を数値型に変換する必要があります。

image

0 + NaN と同じですので、最終結果は NaN です。

また、[1] + 1 の例を見てみましょう。

image

オブジェクト型が含まれているため、valueOf を呼び出す必要があります。

image

呼び出した後、プリミティブ型ではないため、toString を呼び出す必要があります。

image

プリミティブ型に変換され、上記の手順に従って、すべての文字列を文字列として結合するため、結果は '11' です。

もう一つ例を見てみましょう。

image

ここでエラーが発生し、このオブジェクトをプリミティブ型に変換できないというメッセージが表示されます。これは、valueOf と toString が obj をプリミティブ型に変換できないためです。

これらの内容は、面接の質問に頻繁に出題され、知識の理解度を試されます。皆さん、頑張ってください。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。