[JavaScript] 역할 영역 정보[요약]
8519 단어 JavaScript
역할 영역은 무엇입니까?
프로그래밍의 Scape(역할 영역)은 변수나 함수가 특정 이름으로 참조되는 범위입니다.
중요한 것은 현재 실행 중인 코드에서 이 변수나 함수를 볼 수 있는지 여부입니다. (참조할 수 있는지 여부)
실지 를 보다
↓ 코드 실행 후
main.js
{
let a = 0;
const b = function () {}
debugger; //실행 중인 코드
} 변수 a와 함수 b는 참조할 수 있다는 것을 안다 ↓ 다음에 이 코드를 실행하면
main.js
{
let a = 0;
const b = function () {}
}
debugger; //실행 중인 코드 a와 b 참조 불가
즉 실행 중인 코드(이번에는 debugger;)에서 변수나 함수를 표시하는 범위를 작용역이라고 한다
역할 영역 유형
JavaScript에는 5가지 역할 영역이 있습니다.
전역 역할 영역
스크립트 역할 영역
함수 작용역
코코넛 젤리
모듈 역할 영역
전역 역할 영역
스크립트 파일 아래쪽에 var 또는 function으로 정의한 다음 들어갑니다
main.js
var a = 0;
function b() {}
debugger; //실행 중인 코드
스크립트 역할 영역
스크립트 파일 바로 아래let
또는 const
에 정의되어 있으면 여기로 들어가십시오.
main.js
let a = 0;
const b = function() {}
debugger; //実行中のコード
전역 역할 영역과 스크립트가 이 파일에 작용하면 어디서든 참고할 수 있습니다.
함수 작용역
이름과 같이 함수의 작용역.
이 함수 안에 있으면 변수 b를 참조할 수 있습니다.
단일 함수가 아니면 인용할 수 없습니다.
코코넛 젤리
그물을 막다
↓ 이거예요.
이것{}
에서는 블록코프라고 합니다.
글의 첫 번째 예는 블락코프의 예다.
if문과 for문에 정의된 변수도 블록 코드에 속합니다.
물론 이러한 변수도 블록 외부에서 참조할 수 없습니다.
모듈 역할 영역
모듈(ESM)을 사용할 때 스크립트 역할 영역이 모듈 역할 영역으로 전환됩니다.
inport/export를 사용하지 않으면 다른 파일의 변수와 함수를 참조할 수 없습니다.
[JavaScript] 요약 기본 모듈(ESM) 사용 방법
에폭시 콜로이드
이것은 어떻게 작용 범위를 결정하는 방법입니까?
예를 들어 함수 f1을 먼저 정의한다.
변수 a가 정의되어 있습니다.
여기에 함수 작용역이 하나 있다.
main.js
const f1 = () => {
let a = 0;
}
f1();
함수 f1에서 함수 f2를 정의합니다.
함수 역할 영역의 다른 함수 역할 영역이 설정되었습니다
변수 a를 출력하고 실행합니다.
결과, 변수 a의 값을 얻어 출력합니다.
main.js
const f1 = () => {
let a = 0;
const f2 = () => {
console.log(a); // => 0
}
f2();
}
f1();
실행 중 함수 f2 외부 작용역에서 변수를 인용합니다.
이 외부의 작용역을 외부 작용역(에폭시 콜로이드)이라고 부른다.
또한 이렇게 작용역이 여러 차원으로 변하는 상태를 작용체인이라고 부른다.
작용 체인
역할 영역은 여러 차원으로 연결된 상태를 가리킨다.
작용역 체인에서 가장 안쪽의 작용역부터 변수의 규격을 순서대로 얻는다.
main.js
let a = 0;
const f1 = () => {
let a = 1;
const f2 = () => {
let a = 2; // <-これ
console.log(a); // => 2
}
f2();
}
f1();
main.js
let a = 0;
const f1 = () => {
let a = 1; // <-これ
const f2 = () => {
// let a = 2;
console.log(a); // => 1
}
f2();
}
f1();
main.js
let a = 0; // <-これ
const f1 = () => {
// let a = 1;
const f2 = () => {
// let a = 2;
console.log(a); // => 0
}
f2();
}
f1();
이상은 범위에 관한 내용입니다!
여기까지 봐주셔서 감사합니다.
Reference
이 문제에 관하여([JavaScript] 역할 영역 정보[요약]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/higa02/items/a7a0a1d96d1d67a7c88b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
스크립트 파일 바로 아래
let
또는 const
에 정의되어 있으면 여기로 들어가십시오.main.js
let a = 0;
const b = function() {}
debugger; //実行中のコード
전역 역할 영역과 스크립트가 이 파일에 작용하면 어디서든 참고할 수 있습니다.
함수 작용역
이름과 같이 함수의 작용역.
이 함수 안에 있으면 변수 b를 참조할 수 있습니다.
단일 함수가 아니면 인용할 수 없습니다.
코코넛 젤리
그물을 막다
↓ 이거예요.
이것{}
에서는 블록코프라고 합니다.
글의 첫 번째 예는 블락코프의 예다.
if문과 for문에 정의된 변수도 블록 코드에 속합니다.
물론 이러한 변수도 블록 외부에서 참조할 수 없습니다.
모듈 역할 영역
모듈(ESM)을 사용할 때 스크립트 역할 영역이 모듈 역할 영역으로 전환됩니다.
inport/export를 사용하지 않으면 다른 파일의 변수와 함수를 참조할 수 없습니다.
[JavaScript] 요약 기본 모듈(ESM) 사용 방법
에폭시 콜로이드
이것은 어떻게 작용 범위를 결정하는 방법입니까?
예를 들어 함수 f1을 먼저 정의한다.
변수 a가 정의되어 있습니다.
여기에 함수 작용역이 하나 있다.
main.js
const f1 = () => {
let a = 0;
}
f1();
함수 f1에서 함수 f2를 정의합니다.
함수 역할 영역의 다른 함수 역할 영역이 설정되었습니다
변수 a를 출력하고 실행합니다.
결과, 변수 a의 값을 얻어 출력합니다.
main.js
const f1 = () => {
let a = 0;
const f2 = () => {
console.log(a); // => 0
}
f2();
}
f1();
실행 중 함수 f2 외부 작용역에서 변수를 인용합니다.
이 외부의 작용역을 외부 작용역(에폭시 콜로이드)이라고 부른다.
또한 이렇게 작용역이 여러 차원으로 변하는 상태를 작용체인이라고 부른다.
작용 체인
역할 영역은 여러 차원으로 연결된 상태를 가리킨다.
작용역 체인에서 가장 안쪽의 작용역부터 변수의 규격을 순서대로 얻는다.
main.js
let a = 0;
const f1 = () => {
let a = 1;
const f2 = () => {
let a = 2; // <-これ
console.log(a); // => 2
}
f2();
}
f1();
main.js
let a = 0;
const f1 = () => {
let a = 1; // <-これ
const f2 = () => {
// let a = 2;
console.log(a); // => 1
}
f2();
}
f1();
main.js
let a = 0; // <-これ
const f1 = () => {
// let a = 1;
const f2 = () => {
// let a = 2;
console.log(a); // => 0
}
f2();
}
f1();
이상은 범위에 관한 내용입니다!
여기까지 봐주셔서 감사합니다.
Reference
이 문제에 관하여([JavaScript] 역할 영역 정보[요약]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/higa02/items/a7a0a1d96d1d67a7c88b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
그물을 막다
↓ 이거예요.
이것
{}
에서는 블록코프라고 합니다.글의 첫 번째 예는 블락코프의 예다.
if문과 for문에 정의된 변수도 블록 코드에 속합니다.
물론 이러한 변수도 블록 외부에서 참조할 수 없습니다.
모듈 역할 영역
모듈(ESM)을 사용할 때 스크립트 역할 영역이 모듈 역할 영역으로 전환됩니다.
inport/export를 사용하지 않으면 다른 파일의 변수와 함수를 참조할 수 없습니다.
[JavaScript] 요약 기본 모듈(ESM) 사용 방법
에폭시 콜로이드
이것은 어떻게 작용 범위를 결정하는 방법입니까?
예를 들어 함수 f1을 먼저 정의한다.
변수 a가 정의되어 있습니다.
여기에 함수 작용역이 하나 있다.
main.js
const f1 = () => {
let a = 0;
}
f1();
함수 f1에서 함수 f2를 정의합니다.
함수 역할 영역의 다른 함수 역할 영역이 설정되었습니다
변수 a를 출력하고 실행합니다.
결과, 변수 a의 값을 얻어 출력합니다.
main.js
const f1 = () => {
let a = 0;
const f2 = () => {
console.log(a); // => 0
}
f2();
}
f1();
실행 중 함수 f2 외부 작용역에서 변수를 인용합니다.
이 외부의 작용역을 외부 작용역(에폭시 콜로이드)이라고 부른다.
또한 이렇게 작용역이 여러 차원으로 변하는 상태를 작용체인이라고 부른다.
작용 체인
역할 영역은 여러 차원으로 연결된 상태를 가리킨다.
작용역 체인에서 가장 안쪽의 작용역부터 변수의 규격을 순서대로 얻는다.
main.js
let a = 0;
const f1 = () => {
let a = 1;
const f2 = () => {
let a = 2; // <-これ
console.log(a); // => 2
}
f2();
}
f1();
main.js
let a = 0;
const f1 = () => {
let a = 1; // <-これ
const f2 = () => {
// let a = 2;
console.log(a); // => 1
}
f2();
}
f1();
main.js
let a = 0; // <-これ
const f1 = () => {
// let a = 1;
const f2 = () => {
// let a = 2;
console.log(a); // => 0
}
f2();
}
f1();
이상은 범위에 관한 내용입니다!
여기까지 봐주셔서 감사합니다.
Reference
이 문제에 관하여([JavaScript] 역할 영역 정보[요약]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/higa02/items/a7a0a1d96d1d67a7c88b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이것은 어떻게 작용 범위를 결정하는 방법입니까?
예를 들어 함수 f1을 먼저 정의한다.
변수 a가 정의되어 있습니다.
여기에 함수 작용역이 하나 있다.
main.js
const f1 = () => {
let a = 0;
}
f1();
함수 f1에서 함수 f2를 정의합니다.함수 역할 영역의 다른 함수 역할 영역이 설정되었습니다
변수 a를 출력하고 실행합니다.
결과, 변수 a의 값을 얻어 출력합니다.
main.js
const f1 = () => {
let a = 0;
const f2 = () => {
console.log(a); // => 0
}
f2();
}
f1();
실행 중 함수 f2 외부 작용역에서 변수를 인용합니다.이 외부의 작용역을 외부 작용역(에폭시 콜로이드)이라고 부른다.
또한 이렇게 작용역이 여러 차원으로 변하는 상태를 작용체인이라고 부른다.
작용 체인
역할 영역은 여러 차원으로 연결된 상태를 가리킨다.
작용역 체인에서 가장 안쪽의 작용역부터 변수의 규격을 순서대로 얻는다.
main.js
let a = 0;
const f1 = () => {
let a = 1;
const f2 = () => {
let a = 2; // <-これ
console.log(a); // => 2
}
f2();
}
f1();
main.js
let a = 0;
const f1 = () => {
let a = 1; // <-これ
const f2 = () => {
// let a = 2;
console.log(a); // => 1
}
f2();
}
f1();
main.js
let a = 0; // <-これ
const f1 = () => {
// let a = 1;
const f2 = () => {
// let a = 2;
console.log(a); // => 0
}
f2();
}
f1();
이상은 범위에 관한 내용입니다!
여기까지 봐주셔서 감사합니다.
Reference
이 문제에 관하여([JavaScript] 역할 영역 정보[요약]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/higa02/items/a7a0a1d96d1d67a7c88b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
let a = 0;
const f1 = () => {
let a = 1;
const f2 = () => {
let a = 2; // <-これ
console.log(a); // => 2
}
f2();
}
f1();
let a = 0;
const f1 = () => {
let a = 1; // <-これ
const f2 = () => {
// let a = 2;
console.log(a); // => 1
}
f2();
}
f1();
let a = 0; // <-これ
const f1 = () => {
// let a = 1;
const f2 = () => {
// let a = 2;
console.log(a); // => 0
}
f2();
}
f1();
Reference
이 문제에 관하여([JavaScript] 역할 영역 정보[요약]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/higa02/items/a7a0a1d96d1d67a7c88b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)