>  기사  >  웹 프론트엔드  >  var가 있거나 없는 JavaScript에서 변수가 정의되었는지 구별하는 방법에 대한 자세한 예

var가 있거나 없는 JavaScript에서 변수가 정의되었는지 구별하는 방법에 대한 자세한 예

伊谢尔伦
伊谢尔伦원래의
2017-07-18 10:11:151329검색

변수를 정의할 때 var 키워드를 사용하는 것과 사용하지 않는 것의 차이점을 정리해보자.

함수 내에서 var로 선언된 변수와 var 없이 선언된 변수는 다릅니다. var로 선언된 것은 지역 변수이고, var가 없는 것은 전역 변수로 선언되므로 이를 사용하여 인터페이스 내용을 외부 세계에 노출할 수 있습니다.

var 문을 사용하여 선언문을 반복하는 것은 합법적이며 무해합니다. 대입문과 함께 문이 반복되는 경우 일반 대입문과 다르지 않습니다. 선언되지 않은 변수를 읽으려고 하면 JS가 오류를 보고합니다.

JavaScript의 함수 범위 내에서 선언된 변수나 내부 함수는 함수 본문에 표시됩니다. 즉, 함수가 정의되기 전에 사용할 수 있을 수도 있습니다. 함수를 정의하는 방법에는 두 가지가 있습니다. 하나는 함수 정의 표현식이고 다른 하나는 함수 선언문입니다.

함수 선언문은 외부 스크립트 또는 외부 함수 범위의 맨 위로 "앞으로 가져오므로" 이러한 방식으로 선언된 함수는 정의되기 전에 나타나는 코드로 호출될 수 있습니다. 함수 정의 표현식에서는 변수 선언이 진행되지만 변수에 대한 할당은 진행되지 않습니다. 따라서 표현식에 정의된 함수는 함수가 정의되기 전에 호출될 수 없습니다.

1. 함수 범위에서 var로 정의된 변수는 지역 변수이고, var 없이 정의된 변수는 전역 변수입니다.
var 정의 사용:


var a = 'hello World';
function bb(){
 var a = 'hello Bill';
 console.log(a);  
}
bb()      //'hello Bill'
console.log(a);  //'hello world'

var 정의 사용 안 함:


var a = 'hello World';
function bb(){
 a = 'hello Bill';
 console.log(a);  
}
bb()      //'hello Bill'
console.log(a);  //'hello Bill'

2 전역 범위에서는 var를 사용하여 정의된 변수는 삭제할 수 없으며, var 없이 정의된 변수는 엄격하게 삭제할 수 있습니다. 즉, 암시적 전역 변수는 실제 변수가 아니라 전역 개체의 속성입니다. 속성은 삭제를 통해 삭제할 수 있지만 변수는 삭제할 수 없기 때문입니다.

3. var를 사용하여 변수를 정의하면 변수 선언도 승격됩니다. 즉,
var 정의 사용:


function hh(){
 console.log(a);
 var a = 'hello world';
}
hh()      //undefined

var 정의 사용 안 함:


function hh(){
 console.log(a);
 a = 'hello world';
}
hh()      //'a is not defined'

이것은 변수 선언입니다. var를 사용하여 미리 정의했습니다.

4. ES5의 'use strict' 모드에서는 var를 사용하여 변수를 정의하지 않으면 오류가 보고됩니다.

위 내용은 var가 있거나 없는 JavaScript에서 변수가 정의되었는지 구별하는 방법에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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