>  기사  >  웹 프론트엔드  >  js에서 let 및 var를 사용하여 변수를 정의하는 방법

js에서 let 및 var를 사용하여 변수를 정의하는 방법

小云云
小云云원래의
2018-02-09 10:09:071916검색

let과 var 모두 js에서 변수를 정의할 수 있습니다. 이 글에서는 주로 js에서 변수를 정의하는 let과 var의 차이점을 소개합니다. 참고할 만한 내용이 있어서 필요한 분들이 참고하시면 좋겠습니다. 모두를 도와주세요.

javascript strict 모드

이것은 제가 처음으로 let 키워드를 접한 것입니다. 주의해야 할 매우 중요한 개념 중 하나는 "javascript strict 모드"입니다. 실행되면 오류가 보고됩니다:

let hello = 'hello world.';
console.log(hello);

오류 메시지는 다음과 같습니다:

let hello = 'hello world.';
^^^
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
 ...

해결책은 파일 헤더에 "javascript strict mode" 문을 추가하는 것입니다:

'use strict';
let hello = 'hello world.';
console.log(hello);

let과 var 키워드의 유사점과 차이점

선언 후 값을 할당하지 않으면 성능은 동일합니다

'use strict';
(function() {
 var varTest;
 let letTest;
 console.log(varTest); //输出undefined
 console.log(letTest); //输出undefined
}());

선언되지 않은 변수를 사용하면 성능이 다릅니다.

(function() {
 console.log(varTest); //输出undefined(注意要注释掉下面一行才能运行)
 console.log(letTest); //直接报错:ReferenceError: letTest is not defined
 var varTest = 'test var OK.';
 let letTest = 'test let OK.';
}());

같은 변수를 반복해서 선언하면 동작이 다릅니다.

'use strict';
(function() {
 var varTest = 'test var OK.';
 let letTest = 'test let OK.';
 var varTest = 'varTest changed.';
 let letTest = 'letTest changed.'; //直接报错:SyntaxError: Identifier 'letTest' has already been declared
 console.log(varTest); //输出varTest changed.(注意要注释掉上面letTest变量的重复声明才能运行)
 console.log(letTest);
}());

변수의 범위 동작이 다릅니다

'use strict';
(function() {
 var varTest = 'test var OK.';
 let letTest = 'test let OK.';
 {
 var varTest = 'varTest changed.';
 let letTest = 'letTest changed.';
 }
 console.log(varTest); //输出"varTest changed.",内部"{}"中声明的varTest变量覆盖外部的letTest声明
 console.log(letTest); //输出"test let OK.",内部"{}"中声明的letTest和外部的letTest不是同一个变量
}());

관련 권장 사항:

PHP 사전 정의 변수에 대한 자세한 설명

Javascript에서 변수를 정의하는 방법은 무엇입니까?

JavaScript의 변수 선언과 변수 var의 정의에 대한 다양한 이해와 분석에 대하여

위 내용은 js에서 let 및 var를 사용하여 변수를 정의하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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