JavaScript의 범위
4609 단어 webdevbeginnersjavascript
여기에서 값과 표현식을 사용할 수 있거나 "볼 수"있고 실행 중인 프로그램에서 참조할 수 있습니다.
현재 실행 컨텍스트에서 볼 수 없거나 사용할 수 없는 값은 현재 실행 중인 코드에서 사용할 수 없습니다.
범위는 이해하기 쉬운 개념으로 보일 수 있지만 실제로는 노련한 개발자도 가끔 넘어집니다.
참고: 범위는 일반적으로 하위 범위가 상위 범위를 참조할 수 있지만 상위 범위는 하위 범위를 참조할 수 없도록 계층적으로 중첩됩니다.
JavaScript에는 세 가지 유형의 범위가 있으며 여기에는 다음이 포함됩니다.
이것은 스크립트 모드에서 실행되는 모든 코드의 기본 범위입니다. 즉, 모든 것이 엄격한 실행 컨텍스트 없이 한 줄씩 실행됩니다
이 범위는 코드가 모듈 모드에서 실행될 때 발생합니다
제안된 대로 이 범위는 함수 내부에서 생성됩니다.
변수 및 범위
위의 3가지 범위 외에도 변수가 ES6 구문(
let
및 const
)으로 선언되면 다른 범위가 생성됩니다.이것은 한 쌍의 중괄호 본문 내에 생성된 범위입니다.
var
키워드는 블록 범위를 구현하지 않습니다.기능 범위 예
function functionScopeExample() {
var name = "Anjette"; //=> available only within functioScopeExample() body
console.log(name); //=> Anjette
}
functionScopeExample();
console.log(name); //=> ReferenceError: name is not defined
위 스니펫에서 범위가
name
본문, 즉 함수 범위로 제한되기 때문에 functionScopeExample
를 참조할 수 없습니다.그러나 변수
name
는 함수 범위 내에서 성공적으로 참조됩니다.전역 범위 예
변수를 전역 범위로 이동해 보겠습니다.
var name = "Anjette"; //=> available throughout the script i.e global scope
function globalScopeExample() {
console.log(name); //=> Anjette
}
globalScopeExample();
console.log(name); //=> Anjette
위의 예에서 변수는 전역 범위에서 선언되었으므로 함수 내부와 함수 범위 외부에서 모두 사용할 수 있습니다.
블록 범위 예
블록은 한 쌍의 중괄호로 정의됩니다.
{
const name = "Anjette";
// let name = "Anjette";
}
console.log(name); //=> ReferenceError: name is not defined
const
또는 let
를 사용하면 위 스니펫에 표시된 대로 블록 외부에서 변수name
에 액세스할 수 없습니다. 선언된 블록 내에서만 액세스할 수 있습니다.var
키워드를 사용하면 동작이 다릅니다.{
var name = "Anjette";
}
console.log(name); //=> Anjette
위 스니펫의 변수는 블록에서 선언되지만
var
키워드는 블록 외부에서 계속 사용할 수 있습니다.주요 테이크 아웃
Reference
이 문제에 관하여(JavaScript의 범위), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hermitex/scope-in-javascript-14hi텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)