JavaScript에는 두 가지 유형의 변수가 있습니다 : 로컬 변수 및 글로벌 변수. 물론, 우리의 기사는이 두 변수를 실제로 구별하는 데 도움이됩니다.
먼저, 로컬 변수는이 변수에 의해 선언 된 함수 내에서만 호출 될 수있는 함수를 나타냅니다. 전체 코드에서 글로벌 변수로 호출 할 수있는 변수. 물론 말 그대로 이해하는 것은 분명하지 않습니다. 아래에 자세히 소개하겠습니다.
우리 모두 알다시피, 변수는 VAR 키워드로 선언해야합니다. 그러나 변수는 JavaScript에서 암시 적으로 사용할 수 있으므로 선언없이 직접 사용됩니다. 또한 JavaScript는 항상 내재적으로 선언 된 변수를 글로벌 변수로 사용하도록 조심하십시오.
예를 들어:
코드 사본은 다음과 같습니다.
함수 myName () {
i = 'Yuanjianhang';
}
내 이름();
function sayname () {
경고 (i);
}
SayName ();
출력 결과는 다음과 같습니다. Yuanjianhang
이것은 변수 i가 글로벌 변수임을 보여줍니다. 위 코드가 다음으로 변경된 경우.
코드 사본은 다음과 같습니다.
함수 myName () {
var i = 'Yuanjianhang';
}
내 이름();
function sayname () {
경고 (i);
}
SayName ();
이 시점에서 브라우저는 MyName 함수에 정의되어 있기 때문에 출력 결과가 없으므로 MyName의 로컬 변수 일 뿐이며 외부로 호출 할 수 없습니다.
이제 다음 코드를 되돌아보십시오.
코드 사본은 다음과 같습니다.
함수 myName () {
i = 'Yuanjianhang';
}
내 이름();
function sayname () {
경고 (i);
}
SayName ();
이제 몇 가지 변경하고 MyName ()을 제거합시다. 코드는 다음과 같습니다.
코드 사본은 다음과 같습니다.
함수 myName () {
i = 'Yuanjianhang';
}
function sayname () {
경고 (i);
}
SayName ();
현재 브라우저는 크게 반응하지 않습니다. 나는 글로벌 변수이지만 myName () 함수는 호출되지 않으므로 선언되었지만 I에 값을 할당하지 않으므로 출력이 없습니다.
마찬가지로 위의 예가 변경되는 경우 :
코드 사본은 다음과 같습니다.
함수 myName () {
i = 'Yuanjianhang';
}
function sayname () {
경고 (i);
}
SayName ();
내 이름();
이 경우 결과는 출력되지 않습니다. JavaScript 코드가 실행되면 변수 값이 SayName () 함수가 호출되면 확인됩니다. 현재 MyName 기능은 아직 실행되지 않았으므로 아직 할당되지 않았으므로 결과는 출력되지 않습니다.
모든 사람의 이해를 촉진하기 위해 다음은 다음과 같습니다.
코드 사본은 다음과 같습니다.
var i = 'Yuanjianhang';
함수 mylovename () {
i = 'guanxi';
}
mylovename ();
함수 myName () {
경고 (i);
}
내 이름();
이번에는 결과는 무엇입니까?
대답은 Guanxi입니다
우선, I의 원래 값은 Yuanjianhang이지만 MyLovename () 함수를 호출 한 후 I의 값은 Guanxi로 변경되므로 최종 출력 결과는 Guanxi입니다.
코드를 변경하는 경우 :
코드 사본은 다음과 같습니다.
var i = 'Yuanjianhang';
함수 mylovename () {
var i = 'guanxi';
}
mylovename ();
함수 myName () {
경고 (i);
}
내 이름();
이 시점에서 결과는 Yuanjianhang입니다. 코드의 두 I는 다르고, 하나는 글로벌이고 다른 하나는 로컬이기 때문입니다. 이런 식으로 이해할 수 있습니다. 두 사람의 이름은 동일하지만,이 두 사람의 본질은 마치 같은 이름을 가진 두 사람이있는 것처럼 다릅니다. 이름은 동일하지만 같은 사람은 아닙니다.
코드를 이것으로 변환하는 경우 :
코드 사본은 다음과 같습니다.
var i = 'Yuanjianhang';
함수 mylovename () {
i = 'guanxi';
}
함수 myName () {
경고 (i);
}
내 이름();
mylovename ();
나는 모든 사람이 그 결과를 스스로 알아낼 수 있다고 믿으며 결과는 Yuanjianhang입니다.
기능 내에서 글로벌 변수를 호출 할 수 있으므로 다음과 같은 상황은 어떻습니까?
코드 사본은 다음과 같습니다.
var i = 'Yuanjianhang';
함수 mylovename () {
i = 'guanxi';
경고 (i);
}
mylovename ();
현재 변수는 무엇입니까?
분석하자 :
먼저, 글로벌 변수 I은 다음과 같이 할당됩니다. Yuanjianhang.
다음 mylovename () 함수가 호출되고 글로벌 변수 i가 새로운 값으로 재 할당됩니다 : Guanxi
결과는 확실히 다음과 같습니다. Guanxi.
다음과 같이 미리 알리면 어떨까요?
코드 사본은 다음과 같습니다.
var i = 'Yuanjianhang';
함수 mylovename () {
경고 (i);
i = 'guanxi';
}
mylovename ();
현재 결과는 무엇입니까?
검증 된 결과는 다음과 같습니다. 정의되지 않았습니다
코드가 다음과 같은 경우 어떻게해야합니까?
코드 사본은 다음과 같습니다.
var i = 'Yuanjianhang';
함수 mylovename () {
경고 (i);
}
mylovename ();
현재 결과는 : Yuanjianhang입니다
위의 정의되지 않은 상황이 발생하는 이유는 무엇입니까? 코드의 실행 순서는 위에서 아래로 이루어 지므로 출력 전에 i의 정의가 없기 때문입니다. 따라서 코드를 사용할 때 비슷한 문제를 피하기 위해 코드 선언을 코드 앞에 배치해야 함을 알 수 있습니다!
비슷하게:
코드 사본은 다음과 같습니다.
var i = 'Yuanjianhang';
함수 mylovename () {
경고 (i);
var i = 'guanxi';
}
mylovename ();
이 경우에도 출력됩니다
좋아, 나는 변수에 대한 소개가 너무 많아서 누구나 이것을 이해할 수 있다고 생각합니다. 코드가 어떻게 복사 되더라도 그 핵심은 변경되지 않습니다.
위는이 기사에 관한 것입니다. JavaScript의 로컬 변수와 글로벌 변수의 차이에 대해 더 깊이 이해 했습니까? 새해 복 많이 받으시고 행복한 공부를 기원합니다.