[フレーム]
はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできます コメント表示の設定

ブックマークしました

ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

98users がブックマーク コメント 18

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

JavaScriptでObjectに空のStringを足すと0になる!?......わけではなかった

98 users zenn.dev/ymrl

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

はてなブックマーク

はてなブックマークで
関心をシェアしよう

みんなの興味と感想が集まることで
新しい発見や、深堀りがもっと楽しく

ユーザー登録

アカウントをお持ちの方はログインページ

記事へのコメント18

  • 注目コメント
  • 新着コメント
oisux
仕様上、Statementが`{`で始まるとExpressionとして解釈されない(=Blockになる)ように定義されている https://262.ecma-international.org/14.0/#sec-expression-statement / node REPLは先頭が`{`の時()で囲むような処理をするので結果が異なる

その他
coppieee
ブロックが文なので{}と+""か別々に評価されて、+が単行プラス演算子として機能してるからだな。なので+""は数値に変換されて0になる。

その他
yorkfield
ブロックに対する足し算が文法エラーにならないんだ。

その他
hasiduki
実装より仕様を見たいな!!!!!!!

その他
tick2tack
{ foo: "bar" } + "" で 0 が返ってくると。オブジェクトでなく foo というラベルの付いた "bar" という文のブロックとして評価されると

その他
shingo-sasaki-0529
Node だと結果が違うけど、 {} をブロックステートメントと解釈するかだから、処理系と言うより REPL の実装差異なのかなぁ。

その他
otchy210
{foo: "bar"} がオブジェクトリテラルではなくブロック内に `foo` ラベルの付いた "bar" という文として解釈されうるの、深慮に欠けたという意味でもはや仕様バグでは。正規表現リテラル並の闇。

その他
softstone
map()でオブジェクト返すときとかによく出会うやつだけど、アロー演算子とセットで覚えちゃってるから違うところで見るとギョッとするのもわかる。(あとJSの自動型変換が信用されてないのも...)

その他
satomi_hanten
暗黙の型変換が無い言語は嫌いだけど、挙動が一定でなかったり直感的でなかったりするのは好きじゃない。

その他
rryu
BlockStatementは文末にセミコロンのいらない文なので何事もなく文が終わり2つの文として解釈されているということなのか。オブジェクトの中身に見えるものがラベル付き文なのがおもしろい。

その他
axljpn
nodeだと[object Object]になったので実装依存?

その他
oisux
oisux 仕様上、Statementが`{`で始まるとExpressionとして解釈されない(=Blockになる)ように定義されている https://262.ecma-international.org/14.0/#sec-expression-statement / node REPLは先頭が`{`の時()で囲むような処理をするので結果が異なる

2024年01月24日 リンク

その他
Lhankor_Mhy
答を読む前にわかった。オブジェクト初期化子をブロックと解釈されないように否定演算子とかvoidとかをつけたりするのは、JavaScript書いてるとよくある。

その他
beejaga
スクリプトのオブジェクト構文に蹂躙されたおじいちゃんには当たり前の挙動に見えてしまうが、普通にIDEを使っていると気付かないか......

その他
nemoba
ブロック文への演算??と思ったけど、空ブロック文の区切りと単項演算子が並んでる扱いなのかw

その他
coppieee
coppieee ブロックが文なので{}と+""か別々に評価されて、+が単行プラス演算子として機能してるからだな。なので+""は数値に変換されて0になる。

2024年01月24日 リンク

その他
yorkfield
yorkfield ブロックに対する足し算が文法エラーにならないんだ。

2024年01月24日 リンク

その他
odakaho
セキュリティホールありそう

その他
tick2tack
tick2tack { foo: "bar" } + "" で 0 が返ってくると。オブジェクトでなく foo というラベルの付いた "bar" という文のブロックとして評価されると

2024年01月24日 リンク

その他
ledsun
"{} は空のブロック であり" へー、なるほどなあ

その他
hasiduki
hasiduki 実装より仕様を見たいな!!!!!!!

2024年01月24日 リンク

その他
quality1
やっぱりわからないJavaScript

その他
nmcli
バグ発見の手掛かりにはなりそう

その他

注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

リンクを埋め込む

以下のコードをコピーしてサイトに埋め込むことができます

プレビュー
アプリのスクリーンショット
いまの話題をアプリでチェック!
  • バナー広告なし
  • ミュート機能あり
  • ダークモード搭載
アプリをダウンロード

関連記事

usersに達しました!

さんが1番目にブックマークした記事「JavaScriptでObjec...」が注目されています。

気持ちをシェアしよう

ツイートする

JavaScriptでObjectに空のStringを足すと0になる!?......わけではなかった

ASTをみてみよう この不思議な現象を調査するために、AST(Abstract Syntax Tree: 抽象構文木)の状態を... ASTをみてみよう この不思議な現象を調査するために、AST(Abstract Syntax Tree: 抽象構文木)の状態を見てみることにしました。ASTはソースコードを構文解析した結果をツリー構造にしたもので、AST Explorerを使うと簡単に見ることができます。 ({}) + "" のAST ({}) + "" のASTをみると、ひとつの ExpressionStatement となっているのがわかります。ExpressionStatement の leftは ObjectExpression 、 operator は + 、rightは Literal となっていて、たしかに Object と String の足し算になっています。これなら確かに"[object Object]" が返ってくるでしょう。 {} + ""のAST しかし、{} + "" のASTをみると、Bloc

ブックマークしたユーザー

  • techtech05212024年06月24日 techtech0521
  • ymrl2024年01月25日 ymrl
  • xef2024年01月24日 xef
  • shingo-sasaki-05292024年01月24日 shingo-sasaki-0529
  • buzztaiki2024年01月24日 buzztaiki
  • locke-0092024年01月24日 locke-009
  • ant_mugi2024年01月24日 ant_mugi
  • kmnasjm2024年01月24日 kmnasjm
  • khtokage2024年01月24日 khtokage
  • honeybe2024年01月24日 honeybe
  • naari_32024年01月24日 naari_3
  • otchy2102024年01月24日 otchy210
  • softstone2024年01月24日 softstone
  • satomi_hanten2024年01月24日 satomi_hanten
  • komanezumi712024年01月24日 komanezumi71
  • makopy_inside2024年01月24日 makopy_inside
  • jagagaj2024年01月24日 jagagaj
  • peketamin2024年01月24日 peketamin
すべてのユーザーの
詳細を表示します

ブックマークしたすべてのユーザー

同じサイトの新着

同じサイトの新着をもっと読む

いま人気の記事

いま人気の記事をもっと読む

いま人気の記事 - テクノロジー

いま人気の記事 - テクノロジーをもっと読む

新着記事 - テクノロジー

新着記事 - テクノロジーをもっと読む

同時期にブックマークされた記事

いま人気の記事 - 企業メディア

企業メディアをもっと読む

はてなブックマーク

公式Twitter

はてなのサービス

Copyright © 2005-2025 Hatena. All Rights Reserved.
設定を変更しましたx

AltStyle によって変換されたページ (->オリジナル) /