JavaScript에는 블록 수준 범위 개념이 없습니다. 블록 수준 명령문에 정의된 변수는 실제로 명령문이 아닌 포함 함수에서 생성됩니다. 변수 선언을 변수가 사용되는 위치 근처에 배치하는 대신 함수 본문 상단에 배치할 수 있습니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
Javascript에는 블록 수준 범위 개념이 없습니다. 이는 블록 수준 명령문에 정의된 변수가 실제로 명령문이 아닌 포함 함수에서 생성된다는 의미입니다.
코드 세그먼트 1:
var scope="global"; function f(){ console.log(scope); var scope="local" console.log(scope); } f();
무엇이 출력되나요?
정의되지 않은 로컬
코드 세그먼트 2:
var scope="global"; function f(){ var scope; console.log(scope); scope="local" console.log(scope); } f();
무엇이 출력되나요?
정의되지 않은 로컬
코드 세그먼트 3:
var scope="global"; function f(){ console.log(scope); } f();
무엇이 출력되나요?
답변: global
위의 세 가지 예를 통해 다음은 "JavaScript에는 블록 수준 범위가 없지만 함수 범위가 있습니다"라는 문장을 설명합니다.
JavaScript에서는 함수 범위의 특성상 코드 세그먼트 1과 코드 세그먼트 2가 동일합니다. 지역 변수는 함수 본문 전체에 정의됩니다.
즉, 코드 세그먼트 1은 함수 본문에 있습니다. 변수 범위는 동일한 이름의 전역 변수를 포함하며 프로그램이 var 문을 실행할 때만 지역 변수 범위가 실제로 할당됩니다. 따라서 위의 프로세스는 변수 초기화를 원래 위치, 즉 코드 세그먼트 2에 남겨두고 함수 내 변수 선언을 함수 본문의 맨 위로 "전진"시키는 것과 같습니다.
블록 수준 범위의 프로그래밍 언어에서는 일반적으로 작은 범위에서 변수 선언과 변수를 사용하는 코드를 최대한 서로 가깝게 유지하는 것이 매우 좋은 프로그래밍 습관입니다. JavaScript에는 블록 수준 범위 지정이 없기 때문에 일부 프로그래머는 변수가 사용되는 위치 근처에 선언을 배치하는 대신 의도적으로 함수 본문 상단에 변수 선언을 배치합니다. 이 접근 방식
은 소스 코드가 다양한 지식 범위를 매우 명확하게 반영하도록 만듭니다.
관련 권장 사항:
javascript 학습 튜토리얼위 내용은 자바스크립트에 블록 수준 범위가 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!