JavaScriptミドルチュートリアル(1)-変数
9270 ワード
ユーチューブの『Coding Anma』のjavascript中級講座ビデオを参考にまとめた
varとして宣言されたすべての変数は、コードを実際に移動しません.
上へドラッグとして表現されます.
これを吊り下げと言います.
がんばって
scope内部のどこでも、変数宣言は最上位で宣言されたように表現されます.
実際の動作は以下の通りです.
宣言は有意義だが.
割当額が上がらないからです.
それならHOESTINGになるのでしょうか?
いいえ、letも選択されます.
以上のように,エラーの原因は時間遅延パーティション(TDZ)である.
写真の出所:YouTube「コード安馬」
letとconstはTDZの影響を受ける.
したがって、TDZ領域の変数は使用できません.
つまり、割り振るまでは使えません.
これにより、コードを予測し、潜在的なエラーを低減できます.
ex)
しかし、次のコードに問題があります.
ホイスティンは「スコフ」単位で立ち上がった
上のコードでは、スキャンは関数の内部にあります.(以下に示す)
シースを付けない場合は、関数に宣言されたage=30を追加する必要があります.
宣言および初期化フェーズ 割当フェーズ 宣言フェーズ 初期化フェーズ 割当手順
発表の過程で.
実際のコードに到達すると初期化されます.
参照エラーが発生しました.
宣言+初期化+割り当て. つまり、宣言と同時に分配しなければならない.
=>関数スキャン
関数で宣言された変数のみがゾーン変数です.
=>ブロックスキャン
すべてのコードブロックで生成された変数は、そのコードブロック内でのみ有効であり、外部からアクセスできません.
すなわち、コードブロックに宣言される変数は、領域変数である.
ここでいうコードブロック
関数、if文、for文、while文、try~catch文など
変数可変
varは、宣言された変数を再宣言できます。
var name = 'Mike';
console.log(name); // Mike
var name = 'Jane';
console.log(name); // Jane
let name = 'Mike';
console.log(name); // Mike
let name = 'Jane'; // error!
console.log(name);
varは宣言前に使用できます。
console.log(name); // undifined
var name = 'Mike';
var name宣言前に使用しましたが、エラーXvarとして宣言されたすべての変数は、コードを実際に移動しません.
上へドラッグとして表現されます.
これを吊り下げと言います.
がんばって
scope内部のどこでも、変数宣言は最上位で宣言されたように表現されます.
実際の動作は以下の通りです.
var name; // 호이스팅
console.log(name); // undifined
name = 'Mike'; //할당
ただし、ここでは、コンソール出力は定義されていません.宣言は有意義だが.
割当額が上がらないからです.
恩浩を立ち上がらせない??
console.log(name); // ReferenceError
let name = 'Mike';
varとは異なり、letは作成時に上記のエラーが発生します.それならHOESTINGになるのでしょうか?
いいえ、letも選択されます.
以上のように,エラーの原因は時間遅延パーティション(TDZ)である.
写真の出所:YouTube「コード安馬」
letとconstはTDZの影響を受ける.
したがって、TDZ領域の変数は使用できません.
つまり、割り振るまでは使えません.
これにより、コードを予測し、潜在的なエラーを低減できます.
ex)
let age = 30;
function showAge(){
console.log(age);
}
showAge();
上のコードは問題ありません.しかし、次のコードに問題があります.
let age = 30;
function showAge(){
console.log(age);
let age = 20;
}
showAge();
それを見て、いい知らせはないと勘違いされた.ホイスティンは「スコフ」単位で立ち上がった
上のコードでは、スキャンは関数の内部にあります.(以下に示す)
function showAge(){
console.log(age);
let age = 20;
}
letで宣言された2番目の変数は反発を生じます.シースを付けない場合は、関数に宣言されたage=30を追加する必要があります.
変数の生成と定義
var
let
発表の過程で.
実際のコードに到達すると初期化されます.
参照エラーが発生しました.
const
スキャン
var
=>関数スキャン
関数で宣言された変数のみがゾーン変数です.
const age = 30;
if(age>19){
var txt = '성인';
}
console.log(txt); // 성인
関数で宣言した場合、外部では使用できません.function add(num1, num2){
var result = num1 + num2;
}
add(2,3);
console.log(result); // referenceError발생.
let, const
=>ブロックスキャン
すべてのコードブロックで生成された変数は、そのコードブロック内でのみ有効であり、外部からアクセスできません.
すなわち、コードブロックに宣言される変数は、領域変数である.
ここでいうコードブロック
関数、if文、for文、while文、try~catch文など
Reference
この問題について(JavaScriptミドルチュートリアル(1)-変数), 我々は、より多くの情報をここで見つけました https://velog.io/@hyunboo95/자바스크립트-중급강좌1-변수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol