>  기사  >  웹 프론트엔드  >  JavaScript에서 var, let, const는 무엇입니까? var, let, const 사용법(코드)

JavaScript에서 var, let, const는 무엇입니까? var, let, const 사용법(코드)

青灯夜游
青灯夜游원래의
2018-09-18 15:47:181225검색

이 장에서는 JavaScript의 var, let, const가 무엇인지 소개합니다. var, let, const(코드)의 사용법. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

1. Var

은 전역 창에서 전역 변수로 선언되며 전역 개체 창의 속성입니다.

var sum = 0
console.log(window.sum)  // 0
console.log(sum);        // 0

함수에 선언된 변수는 로컬 변수입니다

function foo(){
    function bar(a){
        i = 3;
        console.log( a + i );  // 3 之后是无限循环11
    }
    var  i = 0
    for( i ; i <= 10; i++){
        bar( i * 2 )
    }
}
foo()

이 코드는 이렇게 작성할 수 있습니다

function foo(){
    function bar(a){
        i = 3;
        console.log( a + i );
    }
    var i
    i = 0
    for( i ; i <= 10; i++){
        bar( i * 2 )
    }
}
foo()

변수가 승격되기 전에 함수가 승격됩니다. for 루프에 들어간 후 bar 함수의 매개변수가 로 설정됩니다. 0이므로 첫 번째 출력은 3입니다. 초점은 여기에 i = 3입니다. 현재 범위에서 i 선언을 찾고, 그렇지 않은 경우 범위 체인을 따라 검색하여 foo에서 찾습니다. 따라서 foo의 i는 3이 됩니다. i++를 실행하면 i= 4가 되고, bar를 실행하면 다음과 같은 11이 됩니다. 이것은 계속 반복됩니다.

2, let 및 const

ES6에는 두 가지 새로운 선언 방법이 있습니다. 변수. 동일한 범위 내에서 동일한 변수의 반복 선언은 허용되지 않습니다. 변수 승격이 없습니다

변수 승격이 없으므로 이 변수는 변수가 선언되기 전에 사용할 수 없습니다. 하지만 값은 정의되지 않았습니다

ES5에서는 함수에만 블록 수준 범위가 있지만 ES6에는 함수 범위만 있는 것은 아닙니다. 이는 let과 const 덕분입니다

var b = 1;
{
    let b = 2;
}
console.log(b);  // 1

중괄호는 블록 수준 범위와 동일합니다.

var a = []
for(let i=0; i<10;i++){
    a[i] = function(){
        console.log(i);
    };
    console.log(i) //[function,function..]  总共10个
}
console.log(a)
a[8]()  // 8

여기서 let을 var로 변경하면 모든 출력이 10이 되는 것을 확인할 수 있습니다.

var에서 선언한 i는 실제로는 전역 변수로 배열 a와 동일한 수준입니다. for 루프가 i의 값을 변경할 때마다 원래 값을 기준으로 복사됩니다. 루프가 끝나면 i = 10이 되므로 어떻게 호출하든 출력은 10입니다. 현재 블록. 루프의 각 사이클에는 블록이 있으므로 루프할 때마다 새로운 변수 i가 생성됩니다. cont와 let의 한 가지 차이점은 const가 상수를 선언하는 데 사용된다는 것입니다. 일단 선언되면 해당 값을 변경할 수 없습니다. 하지만 const가 참조 유형 값을 선언하면

const a = {}
a.name = &#39;circle&#39;
console.log(a);   // Object {name: "circle"}

const는 이 객체의 주소 값을 저장하므로 주소 값이 변경되지 않는다는 것만 보장할 수 있지만 이 객체의 속성 등이 변경되지 않는다는 보장은 없습니다

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

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