이 장에서는 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 = 'circle' console.log(a); // Object {name: "circle"}
const는 이 객체의 주소 값을 저장하므로 주소 값이 변경되지 않는다는 것만 보장할 수 있지만 이 객체의 속성 등이 변경되지 않는다는 보장은 없습니다
위 내용은 JavaScript에서 var, let, const는 무엇입니까? var, let, const 사용법(코드)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!