>  기사  >  웹 프론트엔드  >  JavaScript에서 var, let 및 const의 차이점은 무엇입니까

JavaScript에서 var, let 및 const의 차이점은 무엇입니까

清浅
清浅원래의
2019-04-22 15:05:213672검색

var, let 및 const의 차이점은 var의 변수는 코드가 실행되기 전에 선언되고 작업 범위는 현재 실행의 컨텍스트에 있다는 것입니다. Let은 변수 생성을 허용하지만 해당 블록에서만 작동합니다. const와 let의 유사점만 차이점은 const로 정의된 변수는 변경할 수 없다는 점입니다

이 글에서는 주로 JavaScript(ES6)에서 변수를 생성하는 방법을 통해 var, let 및 const의 차이점을 소개합니다. 그리고 그것이 모든 사람에게 도움이 되기를 바랍니다.

JavaScript에서 var, let 및 const의 차이점은 무엇입니까

【추천 강좌: JavaScript Tutorial

var VS let

var와 let의 주요 차이점은 함수 범위를 사용하는 것이 아니라 블록 범위를 사용한다는 것입니다. . 이는 let 키워드를 사용하여 생성된 변수가 생성된 "블록" 내에서뿐만 아니라 중첩된 블록 내에서도 사용할 수 있음을 의미합니다.

Example

function discountPrices (prices, discount) {
  var a = []
  for (var i = 0; i < prices.length; i++) {
    var discountedPrice = prices[i] * (1 - discount)
    var finalPrice = Math.round(discountedPrice * 100) / 100
    a.push(finalPrice)
  }  console.log(i) // 3  console.log(discountedPrice) // 150 
  console.log(finalPrice) // 150
  return a
  }

위 예시에서 i, 할인된 가격, 최종 가격을 for 루프 외부에서 사용할 수 있는 이유는 var로 선언하고 var가 함수 범위이기 때문입니다. var를 let으로 바꾸면 어떻게 되나요?

function discountPrices (prices, discount) {
  let a = []
  for (let i = 0; i < prices.length; i++) {
    let discountedPrice = prices[i] * (1 - discount)
    let finalPrice = Math.round(discountedPrice * 100) / 100
    a.push(finalPrice)
  }  
  console.log(i) // 3  
  console.log(discountedPrice) // 150  
  console.log(finalPrice) // 150
  return a
  }
  discountPrices([100, 200, 300], .5) // 这儿会报错i未定义

이 사례에서 알 수 있는 것은 let을 사용하여 선언된 변수는 함수 범위가 아니라 블록 범위라는 것입니다. 따라서 "블록" 외부에서 i(또는 할인된 가격 또는 최종 가격)에 액세스하면 오류가 보고됩니다

다음 차이점은 변수 프로모션과 관련이 있습니다. 호이스팅의 정의는 "JavaScript 인터프리터는 소위 '생성' 단계에서 변수 선언을 기본값인 정의되지 않음에 할당합니다.

예:

function discountPrices (prices, discount) {  
console.log(discounted) // undefined
  var a = []
  for (var i = 0; i < prices.length; i++) {
    var discountedPrice = prices[i] * (1 - discount)
    var finalPrice = Math.round(discountedPrice * 100) / 100
    a.push(finalPrice)
  }
  console.log(i) // 3
  console.log(discountedPrice) // 150
  console.log(finalPrice) // 150
  return a}

undef 대신 let을 사용하기 전에 변수를 선언하려는 경우 (예: var를 사용하여 선언된 변수) 프로그램은 오류를 보고합니다

function discountPrices (prices, discount) {  
console.log(discounted) // 错误
  let a = []
  for (let i = 0; i < prices.length; i++) {
    let discountedPrice = prices[i] * (1 - discount)
    let finalPrice = Math.round(discountedPrice * 100) / 100
    a.push(finalPrice)
  }
  console.log(i) // 3
  console.log(discountedPrice) // 150
  console.log(finalPrice) // 150
  return a}

결론은

var입니다. 변수 선언은 코드가 실행되기 전에 처리되며 해당 범위는 현재 실행의 컨텍스트에 있습니다

let :let 문을 사용하면 범위가 사용되는 블록으로 제한되는 변수를 만들 수 있습니다.

let VS const

이제 var와 let의 차이점을 이해했으니 const는 거의 어떨까요? 하지만 유일한 차이점은 const를 사용하여 변수에 값을 할당하면 새 값에 다시 할당할 수 없다는 것입니다.

let name = &#39;Tyler&#39;
const handle = &#39;tylermcginnis&#39;
name = &#39;Tyler McGinnis&#39; //正确
handle = &#39;@tylermcginnis&#39; //错误

위에서 볼 수 있듯이 let으로 선언된 변수는 다시 할당할 수 있지만 const로는 할당할 수 없습니다. 변수는 변경할 수 없습니다. 따라서 변수를 변경할 수 없도록 하려면 const를 사용하여 선언하면 됩니다. const를 사용하여 객체를 선언한다고 해서 그 속성이 변경될 수 없다는 의미는 아니며, 단지 새로운 값에 재할당될 수 없다는 의미일 뿐입니다. 요약: 위의 내용이 이 기사의 전체 내용입니다. 모든 사람.

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

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