Javascript의 변수 함수 선언 우선 순위

黄舟
풀어 주다: 2017-03-01 14:32:30
원래의
1494명이 탐색했습니다.

사례 1

안돼

사례 2

안돼


두 가지의 출력이 다른 이유는 무엇입니까?

분석:

사례 1의 경우

실행 프로세스는

1과 같이 구체화할 수 있습니다. 먼저 공백을 적용하고 함수 a를 선언하기 시작합니다. 실행 중에 변수 a를 선언하면 이미 a가 선언되어 있는 것으로 확인되어 선언하지 않습니다.

2. )가 실행됩니다. 즉, 출력 함수 a

3. 마지막으로 a=3으로 설정하여 할당 작업을 수행합니다. a는 변수 유형으로 변환되고 값 3이 할당됩니다. 확인을 위해 프로그램을 다음

console.log(a); //输出function a(){}
function a() {};
var a=3;
로그인 후 복사

로 변경하면 프로그램 실행 결과를 확인할 수 있습니다.


할당 전에는 a가 여전히 함수이기 때문입니다. . 대입문이 실행된 후 a는 3이 되며, a()를 실행하면 오류가 보고됩니다.

사례2의 경우

마찬가지로 함수 a가 먼저 선언되고, 변수 a가 선언된 것을 볼 수 있는데, 이미 a의 선언이 있어서 선언되지 않은 상태이다. 함수 a를 변수로 변환합니다. 마지막으로 변수 a의 값이 출력됩니다

요약:

1)函数被申明的优先级高于变量

2)被声明过的变量名或是函数名不会被重复申明

3)变量和赋值语句一起书写,在js引擎解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置


补充

1.下面代码执行结果为

var x=0;
f();
console.log(x);
var f=function(){
	x=1;
}
f();
console.log(x);
function f(){
	x=2;
}
f();
console.log(x);
로그인 후 복사


答案:2 1 1 

 以上就是Javascript中变量函数申明优先级的内容,更多相关内容请关注PHP中文网(www.php.cn)!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!