ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript_javascript スキルにおける「 」の落とし穴についての深い理解

JavaScript_javascript スキルにおける「 」の落とし穴についての深い理解

WBOY
WBOYオリジナル
2016-05-16 17:47:221044ブラウズ
1. 2 つの角括弧を追加します
[] []
角括弧にはステートメントブロックの機能がないため、ここでの 2 つの角括弧は配列になります。 2 つの配列 (オブジェクト型) を追加するには、まずそれらを値型 (基本型) に変換する必要があります。
1. 値型に変換し、valueOf を呼び出します。[] の valueOf() はそのままです
コードをコピーします コードは次のとおりです:

var arr = [];
arr.valueOf() === arr; // true

2、変換されます。 to string, toString of [] 空の文字列です
コードをコピー コードは次のとおりです:

[].toString(); / / ""
String([]) // ""

結果が出ました。 2 つの空の文字列を追加しても、結果は空の文字列のままです。つまり、ここでの「 」は数値の加算ではなく文字列の連結を指します。

2. 中括弧と角括弧の追加
コードをコピーします コードは次のとおりです。

{} []

ここでの中括弧はまだオブジェクト リテラルではなく、空のステートメント ブロックであることに注意してください。したがって、これは削除できます。これは
コードをコピーします コードは次のとおりです:

[]

前に登場した 2 つのオペランドが実際には 1 つのオペランドになっていることに注意してください。 " " 演算子は、オペランドが 1 つだけある場合、算術加算という 1 つの意味のみを表します。つまり、ここでは文字列連結の意味はありません。
角括弧内の toString() は空の文字列であり、
コードをコピー と同等です。 コードは次のとおりです。 :

""

" " は算術加算演算を表します。文字列は数値ではないため、数値型に変換されます。前の記事で述べたように、空の文字列は数値型の 0 に変換されます。
最終結果は 0 になります。

3. 角括弧と中括弧を追加します
コードをコピーします コードは次のとおりです

[] {}

上記と比較すると、括弧と括弧の順序が入れ替わるだけです。結果は異なります。中括弧を右側に配置した後は、上で説明した中括弧の意味が異なります。ここの中括弧はステートメント ブロックではなく、オブジェクト リテラルです。
「」の両側のオペランドは、それぞれ値の型「」と「[object Object]」に変換されます。このとき「 」は文字列の連結を意味します。つまり、
コードをコピー コードは次のとおりです:

"" "[object Object ]"

結果は "[オブジェクト オブジェクト]" です。

4. 括弧も付けてみてください
突然の気まぐれ!さて、括弧には曖昧さがありますが、オペランドとして使用することはできません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。