Javascript での追加は本当に素晴らしいです。
Chrome と Firefox では、{} + 1
番号 1 に等しくなります。ただし、Node.js では、{} + 1
文字列 '[object Object]1' に等しくなります。一方、1 + {}
ブラウザーと Node.js の両方で '1[object Object]' に等しい。ブラウザーで 1 に等しい
理由を誰が説明できますか?{} + 1
1 に答える
14
これは少し複雑です。これは、ほとんどのJavaScriptエンジン{}
がオブジェクトではなくコードブロックとして解釈するために発生します。したがって{}+1
、本質的にはと同じ+1
です。あなたがそうするなら(例えば)
({}+1})
その場合、角かっこ内のコードは()
、コードブロックではなく、式として解釈されます。したがって{}
、実際のオブジェクトになります。
詳細については、こちらをお読みください。
http://www.2ality.com/2012/01/object-plus-object.html
この記事では、Node.Jsで異なる理由についても説明しています。
于 2012-09-04T13:08:49.337 に答える