先日、私はredditでこれを見つけました。ポスターは、類似{} + "" vs "" + {} - 加算の一貫性
"" + {}
が空[object Object]
に等しいながら
{} + ""
は、0
に等しいことに留意しました。
普通の数学の規則ではこれは奇妙だと言われますが、なぜこのようになりますか?
先日、私はredditでこれを見つけました。ポスターは、類似{} + "" vs "" + {} - 加算の一貫性
"" + {}
が空[object Object]
に等しいながら
{} + ""
は、0
に等しいことに留意しました。
普通の数学の規則ではこれは奇妙だと言われますが、なぜこのようになりますか?
文頭にあるトークン{
は、オブジェクトリテラルの開始を意味する場合もあれば、文ブロックの開始を意味する場合もあります。 JavaScriptは後者の文ブロックであるとみなします。
したがって
{} + ""
起因単項+
オペレータのセマンティクスに0
として解釈される式+ ""
、続いてちょうど空文ブロックです。
{}
はであり、文頭にはであるため、曖昧さのない(空の)オブジェクトリテラルです。
大統領を選出してください。私は、JavaScriptの「ワット」に関する話をする人は、すべてのことを完全に説明しなければならないという法律を作ります。 – Pointy
"ワット"の質問を投稿した人をすぐに禁止すると、私は大統領を選ぶでしょう。 –
言語がどのように指定されているかがわかるためです。 –
また、関連するビデオを見てください:[wat](https://www.destroyallsoftware.com/talks/wat) –
私は、これの重複を検索する方が簡単だったと思います。 – Pointy