[解決済み] カンマを使った割り付けは有効か?
2022-11-16 15:14:44
質問
なぜ
aaa = 1,2,3
が動作し、その値を
aaa
を
1
?
なぜ
var bbb = 1,2,3
は機能しないのでしょうか?
なぜ
var bbb = (1,2,3)
が動作し、その値を
bbb
を
3
?
<イグ
どのように解決するのですか?
いろいろとありますが、基本的には カンマ演算子 .
カンマ演算子は、オペランドの両方(左から右へ)を評価し、2番目のオペランドの値を返します。
このコードは
aaa = 1,2,3
と同等である。
aaa = 1;
2;
3;
そこで
aaa
は暗黙のうちに宣言され、値として1が割り当てられています。 コンソールの出力は最後の文の結果である3であることに注意してください。
このコードは
var bbb = 1,2,3
は構文エラーです。なぜなら、変数宣言のカンマは、1行で複数の変数を宣言するために使われるからです。MDN の記事で指摘されているように
のカンマに注意してください。
var
文は ではない というのは、カンマ演算子は式の中には存在しないからです。むしろ、それは特殊文字でvar
文の中で、複数の文をひとつにまとめるための特別な文字です。
ということで、このコードはだいたいこんな感じです。
var bbb = 1;
var 2;
var 3;
もちろん
2
は有効な識別子ではないので、その時点で失敗します。
このコードは
var bbb = (1,2,3)
は最初のものと非常によく似ていますが、数値が括弧でくくられるため、最初に評価されます。つまり、これはおおまかに言って
1;
2;
var bbb = 3;
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] なぜ ++[[]][+[] +[+[]] は "10" という文字列を返すのでしょうか?
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] jQueryを使用して、すべてのクリックイベントハンドラを削除するにはどうすればよいですか?
-
[解決済み] JavaScriptのArray.sort()メソッドでシャッフルするのは正しいのか?
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScriptの変数名として有効な文字は何ですか?
-
[解決済み] モバイルWeb HTML5フレームワークの選び方【終了しました
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
-
[解決済み] javascriptでオプションのパラメータを扱う
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?