JavaScript - Scope
5510 ワード
Scope
各識別子には有効な範囲があり、他のコードは、宣言された位置に基づいて識別子自体を参照できます.
Scopeがない場合、プログラム全体で1つの変数しか使用できません.
識別識別子
JAvascriptエンジンは、スキャンチェーンを介して親スキャンに移動し、識別子決定と呼ばれる同じ名前の2つの変数でどの変数を参照するかを決定します.
n.関数
関数のパラメータは、関数内でのみ参照できます.
function fn(x,y){
console.log(x, y);
return x + y;
}
fn(1,5);
console.log(x, y); // ReferenceError
}
へんすう
変数は、宣言された場所によって有効範囲を決定します.
let num1 = 1;
if (true){
let num2 = 2;
if (true){
let num3 = 3;
}
}
グローバルスキャン
コードの一番外側です.
グローバルスキャンで宣言されたすべての関数と変数は、どこでも参照できます.
ゾーンスキャン
関数体の内部.
ゾーンスキャンで宣言されたすべての関数と変数は、ゾーンスキャンとサブゾーンスキャンで参照できます.
でんしけんびきょう
関数がどこで定義され、関数の位相が決定されます.
JavaScriptを含むほとんどの言語で使用されるスキャン方法
let x = 1;
function test1(){
let x = 2;
test2(); // 1
}
function test2(){
console.log(x);
}
ダイナミックスキャン
関数は、関数の位相を決定するためにどこから調整されますか.
let x = 1;
function test1(){
let x = 2;
test2(); // 2
}
function test2(){
console.log(x);
}
Reference
この問題について(JavaScript - Scope), 我々は、より多くの情報をここで見つけました https://velog.io/@jinpro/JavaScript-Scopeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol