文+[[]] + [[]]
があります。コンソールは "0"(文字列)を返します。 ステートメントが+[[]]
の場合、コンソールは0(数値)を返します。 +0+0
が0の場合、最初の文字列はどのように文字列を返しますか?なぜ+ [[]] + [[]] `は文字列を返しますか?
0
A
答えて
3
ここで構文木は、バイナリ+
の左側のオペランドが単項+
演算の結果であり、右側のオペランドが結果であることを
+
/\
/ \
+ [ ]
| |
| |
[ ] [ ]
|
|
[ ]
のように見えます[[]]
発現。
runtime semantics of the unary +
operator演算子ごとに左側に数字があり、ToNumberを呼び出します。
右辺は、evaluation of the +
operatorの手順9でToPrimitive(オブジェクトのtoString
メソッドを呼び出す方法で)によって文字列プリミティブにキャストされるオブジェクトです。配列の場合、toString
は、コンマで連結された配列の内容の文字列形式を返します。この場合は空の文字列です。
あなたは、変更された結果を、いくつかのオブジェクト上toString
をオーバーライドして見ることによってこれを確認することができます。これは、"0foo"
が生成されます
var a = [];
a.toString = function() { return "foo"; };
console.log(0 + a);
。
1
+[[]]
- 単項演算子があります。
単項+演算子は、そのオペランドを数値型に変換します。 Unary - 演算子は、そのオペランドをNumber型に変換してから、それを否定します。
あなたの表現はobviosly +[[]]
プラス[[]]
「[[]]」によるバイナリ+
オペレータに空の文字列に変換されます です。
従ってが0 + '' = '0'
関連する問題
- 1. なぜglGetProgramInfoLogは空の文字列を返しますか?
- 2. なぜこのメソッドは文字列を返しませんか?
- 3. なぜこれが空の文字列を返しますか?
- 4. なぜreduxフォームはオブジェクトではなく文字列を返しますか?
- 5. なぜNode.jsのfs.readFile()は文字列ではなくバッファを返しますか?
- 6. なぜdynamic.ToString()は文字列と文字列の間に何かを返しますか?
- 7. なぜCocoaは空の文字列を返すのですか?
- 8. 関数からC文字列を返すと、ランダムな文字が返されるのはなぜですか?
- 9. なぜ$ _SERVER ['HTTP_HOST']は時々大文字を返しますか?
- 10. なぜinput()は常に文字列を返しますか?ここ
- 11. なぜセミコロンはIPythonで空の文字列を返しますか?
- 12. Angular 2 httpなぜresponse.json()はjson文字列を返しますか?
- 13. なぜ以下のコードは空の文字列( '')を返しますか?
- 14. なぜ私の文字列関数は[email protected]を返しますか?
- 15. なぜこの要求は空の文字列を返しますか?
- 16. なぜenviron ['QUERY_STRING']は長さゼロの文字列を返しますか?
- 17. なぜnet()。成功するかどうか空文字列を返します
- 18. なぜ私の関数はエラー文字列を返しませんか?
- 19. なぜ私の関数は文字列を返しませんか?
- 20. 300文字列と比較した300文字列がJavascriptでfalseを返すのはなぜですか?
- 21. Regex.MatchData nullを返す:なぜオプション[文字列]ですか?
- 22. Javascript:string.Match()は文字列ではなく配列を返します
- 23. request.jsonは文字列を返します
- 24. なぜ空の文字列の数が1を返しますか?
- 25. なぜこのラムダ式を返すと文字列になりますか?
- 26. 繰り返し文字から隣接する等しい文字がない可能なすべての文字列を返します。文字列
- 27. なぜこの文字列トークンは文字列にキャストされますか?
- 28. random.sampleは文字列ではなく文字のみを返します
- 29. SOAPUIスクリプトアサーション、(文字列として返します)、文字列
- 30. なぜ私はlocalNotificationで文字列の配列をアンラップするとnilを返しますか?
最初のものは_unary_加え、第1 _binary_一つです。それらを混同しないでください。 – Xufox
javascriptが奇妙です。それはあなたの質問に答えますか? :) –
@pro:文字列はどこから来たのですか? –