>  기사  >  웹 프론트엔드  >  var 사용법 요약

var 사용법 요약

巴扎黑
巴扎黑원래의
2017-06-23 10:50:201842검색

  MOOC JavaScript 튜토리얼을 진행하는 동안 var에 관한 몇 가지 문제에 직면했습니다.

  하나 는 함수 내 변수 선언 문제에 관한 것으로, var 선언(req1丶req2丶sumq) 사용 여부에 관계없이 프로그램이 정상적으로 실행되는 것으로 확인되었습니다. 코드는 다음과 같습니다.

 1       <script > 2           function  app2(x,y) 3           { var sum,x,y; 4             sum = x * y; 5             return sum ; 
 6           } 7            req1 = app2(5,6);  //var req1 = app2(5,6); 8            req2 = app2(2,3);  //var req2 = app2(2,3); 9            sumq = req1 + req2;   //var sumq = req1 + req2; 10            document.write("req1的值:"+req1+"<br/>");11            document.write("req2的值:"+req2+"<br/>");12            document.write(req1+"与"+req2+"和:"+sumq);13        </script>

  좀 헷갈려서 인터넷으로 검색해서 책도 좀 읽었습니다. "JavaScript Language Essence" 언급: 선언되지 않은 변수를 직접 사용하는 것을 암시적 전역 변수라고 합니다. 이 방법은 원래 초보자의 편의를 위한 것으로 의도적으로 사용하기 전에 변수를 선언할 필요가 없습니다. 그러나 변수 선언을 잊어버리는 것은 매우 흔한 실수가 되었습니다. JavaScript의 전략은 전역 변수를 미리 선언하는 것을 잊어버린 변수를 만드는 것이지만, 이로 인해 버그를 찾기가 매우 어려워질 수 있습니다. 따라서 전역 변수의 사용은 피해야 합니다.

MOOC에도 있는 var와 관련된 또 다른 혼란이 있습니다. 코드는 다음과 같습니다. 위의 코드는 정확하며 정상적으로 실행될 수 있습니다. 하지만 9번째 코드(var i;)를 삭제해도 프로그램은 정상적으로 실행될 수 있습니다. 문제는 위에서 언급한 것과 동일합니다: 선언되지 않은 변수를 직접 사용하면 해당 변수가 전역 변수가 되어 실행됩니다. 정확하게 . 하지만 13번째 코드가

 1 <!-- 要创建一个运行于无穷循环中的计数器,我们需要编写一个函数来调用其自身。在下面的代码, 2 点击Start按钮,从0开始计数;点击Stop按钮,停止计数。 --> 3     <!DOCTYPE HTML> 4     <html> 5     <head> 6     <meta charset="utf-8"> 7     <script type="text/javascript"> 8           var num=0; 9           var i;                                        //不声明,不会显示错误。.10           function numCount(){11            document.getElementById('txt').value=num;12            num=num+1;13            i = setTimeout("numCount()",1000);           //若为var i ...,则错误。14            }15             function stopCount() {16             clearTimeout(i);17             }18     </script>19     </head>20     <body>21           <form>22           <input type="text" id="txt" />23           <input type="button" value="Start" onClick="numCount()" />24           <input type="button" value="Stop" onClick="stopCount()" />25           </form>26     </body>27     </html>

로 변경되면 9번째 코드 줄의 삭제 여부에 관계없이 프로그램이 제대로 실행되지 않습니다. 그 이유는 다음과 같습니다.

함수 범위에서 var로 선언된 변수는 지역 변수이고, var 없이 선언된 변수는 전역 변수가 됩니다.

그래서 var로 선언하고 나면 변수 i는 지역 변수이므로 프로그램 오류가 발생하게 됩니다.

 역시 전역 범위에서는 var를 사용하여 정의한 변수는 삭제할 수 없고, var를 사용하지 않고 정의한 변수는 삭제할 수 있습니다. 즉, 엄밀히 말하면 암시적 전역 변수는 실제 변수가 아니라 전역 개체의 속성입니다. 속성은 삭제를 통해 삭제할 수 있지만 변수는 삭제할 수 없기 때문입니다. ​

위 내용은 var 사용법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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