>  기사  >  웹 프론트엔드  >  Javascript의 변수 함수 선언 우선 순위

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

黄舟
黄舟원래의
2017-03-01 14:32:301489검색

사례 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)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:JS 교차 문제 해결다음 기사:JS 교차 문제 해결