JavaScript第一、var/let/contの宣言と割り当て、ハイライト
2272 ワード
💁🏻 var/let/constとは? javascript 관련 문서를 검색하다보면 글마다 변수의 선언 키워드가 다른걸 볼 수 있는데,
ES6(ECMAScript6) 부터 let, const가 추가 됐고, 그 이전에는 var만 사용됐다.
아래에서 let와 const가 추가된 이유와 각각의 선언 키워드들을 비교해보자!
📌 変数#ヘンスウ#
変数はその名の通り「変数」であり、JavaScriptでは、変数は特定のフォーマット(String,Integer)値を格納する空間またはメモリに名前を付けます.
まず、変数の作成フェーズは、次の3つのフェーズに分けられます.
javascript 관련 문서를 검색하다보면 글마다 변수의 선언 키워드가 다른걸 볼 수 있는데,
ES6(ECMAScript6) 부터 let, const가 추가 됐고, 그 이전에는 var만 사용됐다.
아래에서 let와 const가 추가된 이유와 각각의 선언 키워드들을 비교해보자!
未定義に初期化します.
var
が割り当てられる.また、同じ変数名の重複宣言や再割り当てが可能であるため、必要に応じて使用を宣言することができるが、既存の宣言変数の存在を忘れて再割り当てするという致命的な欠点がある.
undefined
は、以下に示すように、変数宣言の前に出力することもできる.上記のコードでは、
var
が1番目に位置するが、console.log()
を出力するのは、変数の宣言がundefined
より先に実行されるためである.この動作を「Hosting」と呼ぶ.換言すれば、エスケープとは、実際のコードの位置は変わらないが、すべての変数の宣言が最上位に引き上げられて実行されるスキャン内部の任意の場所で発生することを意味する.
したがって、上記のコードの実行結果は以下のようになります.
console.log()
とlet
でも護衛が発生します.まず、const
は宣言と初期化によって別々に実行される.反発により、変数let
が最初に宣言され、実際のコードに到達したときに初期化されるため、初期化前にa
で変数を参照するとconsole.log
が生成される.なお、
ReferenceError: a is not defined
は再割当可能であるが、let
のように再宣言することはできない.var
では、宣言、初期化および割当ては同時に行われ、起動後に初期化が行われないため、const
が先に実行されるとconsole.log
が生成される.ReferenceError: Cannot access 'a' before initialization
とは異なり、const
は再割り当ておよび再宣言することはできません.constを宣言する場合は、宣言と初期化を同時に行わなければなりません.そうしないと、let
が発生します.📌 整理する
Uncaught SyntaxError: Missing initializer in const declaration
、var
、let
はいずれも変数宣言のためのキーワードであるが、const
を使用せず、変数再割り当てを必要としない場合はvar
を使用することを推奨し、再割り当てが必要な場合はconst
を使用することを推奨する.補足が必要
Reference
この問題について(JavaScript第一、var/let/contの宣言と割り当て、ハイライト), 我々は、より多くの情報をここで見つけました https://velog.io/@croissant/JavaScript-첫번째-var-let-const의-선언과-할당-호이스팅-및-스코프テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol