ホームページ > 記事 > ウェブフロントエンド > JavaScript で「 [[]][ []] [ []]」が 10 に等しいのはなぜですか?
JavaScript における「[[]][ []] [ []]」の謎を探る
JavaScript 開発者は困惑するかもしれません式 " [[]][ []] [ []]" を使用すると、予期しない結果 "10" が得られます。この謎めいた計算の背後にあるプロセスを掘り下げて、その複雑さを解明しましょう。
分析
式を分解すると、次のようになります。
++[[]][+[]] + [+[]]
JavaScript では、「 」を使用して配列要素を強制的に数値に変換できます。オペレーター。具体的には、[] === 0 です。これにより、配列が空の文字列に強制され、結果は "" === 0 になります。
計算の簡略化
これを理解すると、式は次のように簡略化できます。
++[[]][0] + [0]
の最初の要素にアクセスする配列 [[]][0] は内部配列を返します。参照のため、混乱を避けるためにこれを A と呼びます。
インクリメントと変換
演算子はオペランドを 1 つインクリメントし、インクリメントされた結果を返します。したがって、[[]][0] は Number(A) 1 と同等です。
文字列連結
さらに簡略化できます:
(+[] + 1) + [0]
まず、[] が文字列「0」に強制されます。次に、 [] の結果は 1 になります。最後に、配列は で結合できるため、 を使用して「1」と「0」が連結され、結果は 10 になります。
Technicalities
舞台裏で [] を 0 に強制するプロセスにはいくつかの仕様が含まれます参照:
結論
この段階的な分析を通じて、私たちは次のことを実現しました。 JavaScript の不可解な表現「[[]][ []] [ []]」の背後にある仕組みに光を当てます。その実行には強制、増分、連結が含まれ、最終的には「10」という驚くべき結果につながる論理的な行程が明らかになります。
以上がJavaScript で「 [[]][ []] [ []]」が 10 に等しいのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。