js 에서 역할 필드 의 인 스 턴 스 분석
그 다음 에 브 라 우 저 에서 js 파일(script 태그 의 내용)을 읽 는 절 차 를 살 펴 보 겠 습 니 다.
첫 번 째 단계:예비 해석-var function 에 따라 사용 가능 한 매개 변수 나 함 수 를 찾 아 메모리 에 넣 습 니 다(이것 은 창고 에 넣 는 것 과 같 습 니 다)
예 1:
<script>
alert(a)
var a=1
function fn1(){alert(2)}
</script>
var 와 function 에서 찾 을 수 있 습 니 다:a fn1미리 분석 하 는 과정 에서 변수 에 undefined 를 자동 으로 부여 합 니 다.즉,a=undefined 입 니 다.함수 의 값 은 함수 자체 입 니 다.즉,fn1=function fn1(){alert(2)}
그래서 예비 분석 후:a=undefined,fn1=function fn1(){alert(2)}
함수 와 변수 가 이름 을 바 꾸 면 값 있 는 것 만 유지 합 니 다.
예 2:
<script>
alert(a)
var a=1
function a(){alert(2)}
var a=10
</script>
var 와 function 에서 찾 을 수 있 습 니 다:a a a예비 분석 과정:a=undefined,a=function a(){alert(2)},a=undefined
예비 분석 후 a=function a(){alert(2)}만 있 습 니 다.
예 3:
예 2 중 var a=10 뒤에 함수 function a(){alert(4)}가 있다 면
그러면 예비 분석 후의 결 과 는 a=function a(){alert(4)}이 됩 니 다.뒤에 값 이 있 는 것 이 앞 을 덮어 쓰기 때문이다.
두 번 째 단계:바로 위 에서 아래로 코드 를 한 줄 씩 해석 하 는 것 이다.
예 4:
우선 아래 코드 의 예비 분석 결 과 는 a=functiona(){alert(4)}입 니 다.
<script>
alert(a) // a=function a(){alert(4)}, function a(){alert(4)}
var a=1 // , a , a=1
alert(a) // a=1, 1
function a(){alert(2)} // , a , , 。
alert(a) // a=1, 1
var a=10 // , a , a=10
alert(a) // a=10, 10
function a(){alert(4)} // , a , , 。
alert(a) // a=10, 10
</script>
위의 내용 은 예비 해석 의 개념 을 이해 하 는 데 도움 을 주 고'도 메 인'을 사용 하지 않 았 다.그리고 예비 해석 에 있어'도 메 인'을 만나면 이'도 메 인'에서 예비 해석 이 발생 한다.예 5:
다음 코드 예비 분석:a=undefined,fn1=funciton fn1(){alert(a)var a=2;},그리고 코드 를 실행 하기 시작 합 니 다.
<script>
var a=1 // , a ,a=1
funciton fn1(){alert(a);var a=2;} // ,
fn1();// , 。
//1、 , 。
//2、 : alert(a) , a=undefined, undefined。 var a=2 , a=2.
alert(a);// a=1, 1
</script>
예 6:예 5 를 바탕 으로 작은 변경 을 하고 var a=2 를 a=2 로 바 꾸 면 수출 결과 가 다르다.
<script>
var a=1 //a=1
funciton fn1(){alert(a); a=2;}
fn1(); // 。 “var”, 。 alert(a), ( ) a, a=1, 1
// a=2, , a=2
alert(a);// a=2, 2
</script>
예 7:예 6 을 바탕 으로 바 꿔 라.
<script>
var a=1
funciton fn1(a){alert(a); a=2;}
fn1();
alert(a);
</script>
인쇄 된 결 과 는:undefined,1 입 니 다.다 들 생각 하 세 요.알림:funciton fn1(a)은 funciton fn1(var a)에 해당 합 니 다.이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.