>웹 프론트엔드 >JS 튜토리얼 >JS의 변수 및 범위, 정의되지 않음 및 null_javascript 기술에 대한 심층적인 이해

JS의 변수 및 범위, 정의되지 않음 및 null_javascript 기술에 대한 심층적인 이해

WBOY
WBOY원래의
2016-05-16 16:57:151192검색

상황 1

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

< ;script>
 var i; //전역 변수
 //메서드 이름은 카멜 명명법입니다
 //메서드의 변수는 지역 변수입니다

 function sayHello(){
 var x=100;
 alert(x);
 x ;
 }
 sayHello() //출력 100
 alert(x) ); //x가 지역 변수이고 접근할 수 없기 때문에 오류가 보고됩니다.


상황 2
코드 복사 코드는 다음과 같습니다.
<script><br>function sayHello(){<br> var x =100;<br> if(x==100){<br> var y=x 1;<br> 경고(y); //출력 101<br>}<br> 경고(y); 출력 101, 메서드 내부적으로는 C#이 아닌 블록 수준 범위가 없습니다! ! ! <br>  for(var i=0;i<2;i ){<P>  Alert(i)<BR> } //for 루프에 정의된 변수는 블록 수준 범위입니다. <BR> Alert(i); //i는 지역변수이므로 2를 출력<BR> </P>}<P>sayHello();<BR></script>

참고: 변수는 사용하기 전에 var로 선언할 필요가 없습니다. 이러한 변수는 "전역 변수"로 간주됩니다. ". 하지만 이렇게 사용되는 경우는 거의 없습니다

undefine 및 null에 대하여

다음 상황에서는 변수 값이 정의되지 않습니다

1. 변수가 정의되었지만 값이 할당되지 않은 경우 변수 값이 정의되지 않습니다
2. , 반환된 값은 정의되지 않았습니다
3. 객체의 속성 값이 존재하지 않으면 반환 값은 document.ddd
와 같이 정의되지 않습니다.

예1:

코드 복사 코드는 다음과 같습니다.
var xx;
var yy=null;
if(xx==yy){

경고('같음')

}

그밖에{

 alert('notequal');

}

if 판단을 내릴 때 브라우저는 xx와 yy의 값을 판단하기 때문에 출력 결과는 동일합니다. 이들 중 어느 것도 특정 값을 갖고 있지 않으며 거짓으로 간주됩니다.
if 판단을 ===[모두 등호]로 바꾸면 출력이 동일하지 않습니다! ===는 xx와 yy의 데이터 유형과 값이 동일해야 한다는 뜻이기 때문이죠!


예2:
코드 복사 코드는 다음과 같습니다.
var xx=10
var yy='10';
if(xx==yy){

경고('같음');

}

그밖에{

 alert('같지 않음');

}

===로 변경하면 출력이 동일하지 않습니다
예3:


코드 복사 코드는 다음과 같습니다.
var n=' 10';
스위치(n){
 케이스 10:
 alert('번호');

break;

케이스 '10':

 alert('string');

 break;
}

출력 문자열
스위치의 판단은 유형을 고려해야 합니다

요약: if의 판단은 종류에 상관없이 가치를 판단하는 것입니다

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