자바 스크립트의 블록 범위
그러나 블록은 무엇입니까?
중괄호
{}
로 묶인 모든 항목은 블록입니다. 기본적으로 js가 1로 인식하는 두 개의 문장을 함께 묶으면 그것이 블록입니다.{
}
완벽하게 정상적인 자바스크립트 코드의 전형적인 예😌
예를 들어 보겠습니다.
{
let x=9;
const y=10;
var z=0;
}
console.log(z)
console.log(y)
console.log(x)
출력은
var z
만 액세스할 수 있음을 보여줍니다. 이는 호이스트될 때 z는 전역 공간에 할당되고 let & const는 블록 내부에서만 사용 가능한 메모리block space
에 할당되기 때문입니다.와트시
또 다른 예:
let x=100;
const y=98;
var z=78;
{
let x=9;
const y=10;
var z=0;
console.log(x)
console.log(y)
console.log(z)
}
console.log("Outside:")
console.log(x)
console.log(y)
console.log(z)
이 경우:
블록 외부의
var z
값도 변경되지만 블록 외부의 x & y
값은 원래 값과 동일합니다.이는 두 경우 모두 z가 전역 공간에서 동일한 위치를 가리키고 있지만 블록 내부의 x & y는 블록 메모리 공간에 있고 x & y 외부는 별도의 메모리 공간에 있기 때문입니다. 이것을 쉐도잉이라고 합니다.
(네, "다음에 눈을 불태우고 싶을 때까지 라이트 모드!"라며 라이트 모드를 오래 사용했습니다.)
그러나 함수로 만들면 var 값도 변경되지 않는다는 점을 기억하십시오. 함수는 별도의 하위 프로그램으로 작동하고 각각 고유한 실행 컨텍스트를 갖습니다.
You cannot shadow a let declared data with var keyword. Using
let k=10
outside the block and thenvar k=10
inside will throw a syntax error
⭐ Lexical scope in Javascript
Reference
이 문제에 관하여(자바 스크립트의 블록 범위), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aishanipach/block-scope-2g3n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)