第TIL JS 2日目
2735 ワード
変数の内容
『Dream Code by Elly』のjs三説
可変変数
no block scope(グローバル有効範囲)、function-level scope(関数で宣言される変数は領域変数) Var Hoisting 繰り返し宣言
宣言と初期化が同時に完了し、割り当てが完了します.
ソース:https://dmitripavlutin.com/variables-lifecycle-and-why-let-is-not-hoisted/
MDN letドキュメント ブロック有効領域(ブロック単位有効範囲) hoisting O 2-1. TDZ-仮死角O ブロック単位で再宣言(重複宣言)できない
宣言と初期化は同時に行われず、初期化前にTDZが適用されます.
ソース:https://dmitripavlutin.com/variables-lifecycle-and-why-let-is-not-hoisted/
TDZが初期化前に変数にアクセスすると、参照誤差が発生します.
変数をcontとして宣言するには、ポインタメモリをロックします.
再割り当て、再宣言できません.
「+」という文章に書かれていないhostingとTDZに関する内容はキーワード記事にあります.
リンク:https://velog.io/@yogongman/TDZ-Temporal-Dead-Zone
『Dream Code by Elly』のjs三説
可変変数
ES 6の前に変数を宣言するときにvarを使用します.
ES 6からlet、constが出てきました.
その前に知っておくべきことです.
* block scope
注MDN Blockドキュメントlet GlobalName = 'global';
{
console.log(GlobalName);
GlobalName = 'hello';
console.log(GlobalName);
let LocalName = 'local';
console.log(LocalName);
}
console.log(LocalName); //error 블록안에는 지역변수로 할당됨.
var x = 1;
{
var x = 2;
}
console.log(x); // 콘솔에 2를 출력합니다
const c = 1;
{
const c = 2;
//const인데 중복된 이름의 변수를 선언했음에도 에러 출력 x
}
console.log(c); // 1이 콘솔에 찍히며, SyntaxError 예외가 발생하지 않습니다.
var
はブロックを含まない.let
const
は荷物です.
for,ifなどの構文でBlock Scopeを使用する場合も同様である.
varとletの違い
var
MDN varドキュメント
let GlobalName = 'global';
{
console.log(GlobalName);
GlobalName = 'hello';
console.log(GlobalName);
let LocalName = 'local';
console.log(LocalName);
}
console.log(LocalName); //error 블록안에는 지역변수로 할당됨.
var x = 1;
{
var x = 2;
}
console.log(x); // 콘솔에 2를 출력합니다
const c = 1;
{
const c = 2;
//const인데 중복된 이름의 변수를 선언했음에도 에러 출력 x
}
console.log(c); // 1이 콘솔에 찍히며, SyntaxError 예외가 발생하지 않습니다.
var
のライフサイクルはこうです.宣言と初期化が同時に完了し、割り当てが完了します.
ソース:https://dmitripavlutin.com/variables-lifecycle-and-why-let-is-not-hoisted/
let
MDN letドキュメント
var
のプロパティを使用して緩やかに記述できますが、エラーやメモリの漏洩の原因になる可能性があるため、let
を使用する必要があります.let
のライフサイクルはこうです.宣言と初期化は同時に行われず、初期化前にTDZが適用されます.
ソース:https://dmitripavlutin.com/variables-lifecycle-and-why-let-is-not-hoisted/
TDZが初期化前に変数にアクセスすると、参照誤差が発生します.
const
変数をcontとして宣言するには、ポインタメモリをロックします.
再割り当て、再宣言できません.
「+」という文章に書かれていないhostingとTDZに関する内容はキーワード記事にあります.
リンク:https://velog.io/@yogongman/TDZ-Temporal-Dead-Zone
Reference
この問題について(第TIL JS 2日目), 我々は、より多くの情報をここで見つけました https://velog.io/@yogongman/TIL-JS-2일차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol