> 웹 프론트엔드 > JS 튜토리얼 > let, var, const의 차이점은 무엇입니까?

let, var, const의 차이점은 무엇입니까?

PHPz
풀어 주다: 2024-08-22 19:08:45
원래의
529명이 탐색했습니다.

What are the differences between let, var or const?

var 키워드를 사용하여 선언된 변수의 범위는 해당 변수가 생성된 함수로 지정되며, 함수 외부에서 생성된 경우 전역 객체로 지정됩니다. let과 const는 블록 범위입니다. 즉, 가장 가까운 중괄호(함수, if-else 블록 또는 for 루프) 내에서만 액세스할 수 있습니다.

function foo() {
  // All variables are accessible within functions.
  var bar = 'bar';
  let baz = 'baz';
  const qux = 'qux';

  console.log(bar); // bar
  console.log(baz); // baz
  console.log(qux); // qux
}

console.log(bar); // ReferenceError: bar is not defined
console.log(baz); // ReferenceError: baz is not defined
console.log(qux); // ReferenceError: qux is not defined

if (true) {
  var bar = 'bar';
  let baz = 'baz';
  const qux = 'qux';
}

// var declared variables are accessible anywhere in the function scope.
console.log(bar); // bar
// let and const defined variables are not accessible outside the block they were defined in.
console.log(baz); // ReferenceError: baz is not defined
console.log(qux); // ReferenceError: qux is not defined
로그인 후 복사

var를 사용하면 변수를 호이스팅할 수 있습니다. 즉, 변수가 선언되기 전에 코드에서 참조할 수 있습니다. let과 const는 이를 허용하지 않고 대신 오류를 발생시킵니다.

console.log(foo); // undefined

var foo = 'foo';

console.log(baz); // ReferenceError: can't access lexical declaration 'baz' before initialization

let baz = 'baz';

console.log(bar); // ReferenceError: can't access lexical declaration 'bar' before initialization

const bar = 'bar';
로그인 후 복사

var로 변수를 다시 선언하면 오류가 발생하지 않지만 let과 const에서는 오류가 발생합니다.

var foo = 'foo';
var foo = 'bar';
console.log(foo); // "bar"

let baz = 'baz';
let baz = 'qux'; // Uncaught SyntaxError: Identifier 'baz' has already been declared
로그인 후 복사

let과 const는 변수 값을 재할당할 수 있지만 const는 그렇지 않다는 점에서 다릅니다.

// This is fine.
let foo = 'foo';
foo = 'bar';

// This causes an exception.
const baz = 'baz';
baz = 'qux';
로그인 후 복사

위 내용은 let, var, const의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿