[過去ログ] + JavaScript の質問用スレッド vol.124 + (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
459(3): (JP 0Ha1-zD41 [126.249.157.89]) 2022/02/11(金)20:34 ID:efWVJIaOH(1) AAS
質問させてください
let ar={a:{a1:1}};
console.log(a1); // ? a1 is not defined
let {a:{a1}}=ar;
console.log(a1); // ? 1
a1を出力したのですが、
?は未定義
?は1が出力されています
どうして?と?の出力結果が異なるのでしょうか?
460(1): (ササクッテロラ Spa1-6JR8 [126.193.40.232]) 2022/02/11(金)20:42 ID:XbmfRAz/p(1) AAS
>>459
オブジェクトの分割代入されるから。
461: (ワッチョイ 77f0-B80Q [124.45.127.106]) 2022/02/12(土)11:33 ID:RPVXSf4c0(1) AAS
>>459
?のa1はグローバルレキシカルを参照したけど定義されていなかった
?のa1はグローバルレキシカルを参照したらオブジェクトとして登録されていたのでvalueを返した
?は{a:
462(1): (ブーイモ MM42-/t+S [49.239.64.187]) 2022/02/12(土)11:55 ID:GfpJrBC6M(1) AAS
>>459
>>460が書いてるように3行目は分割代入なんだけど
特にオブジェクトデストラクチャリングと呼ばれる機能
外部リンク:developer.mozilla.org
3行目でaとa1という変数が定義される
それ以前はa1という変数が定義されてないからundefined
とりあえずstrictモードを使いましょう
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.043s