>  기사  >  웹 프론트엔드  >  작은 Javascript 문제_javascript 기술에 대한 흥미로운 설명

작은 Javascript 문제_javascript 기술에 대한 흥미로운 설명

WBOY
WBOY원래의
2016-05-16 18:01:481183검색

먼저 다음 3가지 코드를 살펴보겠습니다

코드 복사 코드는 다음과 같습니다.

var firstName = "Mark ";
(function DisplayFirstName() {
console.log(firstName);
})();//Mark를 출력해야 함
var lastName = "Aut" ;
(function DisplayLastName () {
var lastName = "Bru";
console.log(lastName);
})();//Bru가 출력되어야 하며 로컬 범위는 전역 범위보다 우선순위가 높습니다
//다음 코드는 어떻습니까?
var lastName = "Aut"
(function DisplayLastName() {
console.log(lastName);
var lastName = "Bru";
console.log(lastName);
})();//결과가 무엇인지 짐작할 수 있는 사람은 누구일까요?

이 출력 결과는 다음과 같습니다. :
LOG: 정의되지 않음
LOG: Bru

이건 기대 이상입니다. 원래는 "Aut" 및 "Bru"여야 한다고 생각했습니다.
제가 원래 이해한 바는 다음과 같습니다. lastName을 출력합니다. 프로그램은 로컬로 선언된 lastName 변수를 찾지 못하여 전역 lastName 정의를 사용했습니다. 로컬 변수
의 값이 두 번째로 사용되었습니다. (내 개념에서는 JavaScript가 문장 단위로 해석되는 언어이기 때문입니다.) 문장... ....실행)

이 결과를 보면 자바스크립트 실행이 항상 순차적인 것은 아닌 것 같습니다..
지금까지 제 추측으로는 자바스크립트 실행은 먼저 구문을 수행해야 합니다. 그런 다음 변수 테이블(로컬 및 글로벌)을 분석하고 완성
한 다음 스크립트를 한 줄씩 순차적으로 실행하기 시작했습니다
또한 모든 자바스크립트 전문가에게 궁금한 점을 명확하게 설명하도록 요청합니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.