>  기사  >  웹 프론트엔드  >  JS 변수 및 해당 범위 지식 포인트 소개

JS 변수 및 해당 범위 지식 포인트 소개

巴扎黑
巴扎黑원래의
2017-08-17 14:00:211449검색
1. 변수와 그 범위 : 변수는 "전역변수"와 "지역변수"로 나누어진다. "전역변수"는 함수 외부에서 선언되어 모든 함수에서 사용할 수 있는 반면, "지역변수"는 함수 본체 내부에서 선언되고 변수가 정의된 함수 본문 내에서만 사용할 수 있습니다.
(참고: 변수 선언 시 var 키워드는 없지만 직접 할당된 변수는 전역 변수입니다.)
<script type="text/javascript">
  function main() {  
    n = 10;//这里的n为全局变量,可以被外部直接使用
  }
  main();
  alert(n);
</script>

2. 함수 본문에서는 지역 변수가 전역 변수보다 우선순위가 높습니다.
<script type="text/javascript">
  //网上看到的我认为很有代表性的一个例子,在函数体外部和内部都申明了相同名字的变量,变量的作用域问题,例子如下:
  var n = 1;
  function test() {
    alert(n); //这里的a并不是全局变量,原因是函数体第四行申明了一个相同重名的局部变
         //量a,如果把第四行a的申明注释掉,那么这里的a显示1,为全局变量。所以得
         //出结论:全局变量a被局部变量a覆盖了。
         //说明了JS函数在test()在执行前,函数体内的变量a都指向了局部变量,但本
         //行输出的a在执行过程中还没有被赋值,所以显示undefined。
    n = 2;
    alert(n);
    var n; //本行申明局部变量a
    alert(n);
  }
    test();
    alert(n);
</script>

제가 이해한 바에 따르면 위 예제의 최종 출력 응답은 1 2 2 1; 이어야 하지만 정답은 undefine 2 2 1; 입니다. 함수 본문 내에서 로컬 변수는 전역 변수보다 우선합니다.
3. 함수 본문 내부의 지역 변수를 외부에서 읽는 방법은 무엇입니까?
일반적으로 함수 몸체 내부에서는 외부 전역 변수만 직접 얻을 수 있지만, 함수 몸체 내부의 지역 변수는 외부에서 얻을 수 없습니다. 그러나 이는 함수 본문 내부에 다른 함수를 정의하여 지역 변수를 반환한 다음 외부에서 함수를 호출함으로써 달성할 수 있습니다.
rreee

위 내용은 JS 변수 및 해당 범위 지식 포인트 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.