2013-09-22 2 views
0

JavaScript 코드javascript (jquery) if 문이 PHP if 문처럼 작동하지 않는 이유는 무엇입니까? 그리고 해결책은 무엇입니까?

var a = 0;//remove latter 
var b = 1; 

if (a > 0) { 
alert ("a > 0"); 
} 

if (b > 0) { 
alert ("b > 0"); 
} 

모든 작업 (alert ("b > 0");).

그러나 var a = 0;을 제거하면 두 번째 if이 작동하지 않습니다.

결론적으로 첫 번째 경우 if 변수가 없으면 두 번째 if이 작동하지 않습니다.

해결책은 무엇입니까? 항상 javascript - jquery 개의 변수를 정의 하시겠습니까? var a가 없으면 var a = 0;

+0

첫 번째 조건에서 오류가 발생하여 두 번째 조건이 실행되지 않습니다. 해결 방법은 변수를 정의하는 것이거나 오류 처리를 위해 try/catch를 사용하는 것일 수 있습니다. 변수가 정의되어 있는지 확인하려면 OR (필자가 선호하는 솔루션입니다) –

+0

이제 알았습니다. 전에'jquery if'는'php if'와 같이 작동한다고 가정합니다. 'php if'는 이런 상황에서 실행될 것입니다 – user2465936

+0

또한 코드가 JQuery 코드가 아닌 순수한 JavaScript 코드이고 "jQuery if behavior"도 없다는 것을 언급 할 가치가 있습니다! –

답변

2

변수가 선언되지 않은 경우 javascript는 ReferenceError을 throw하므로 자바 스크립트 평가에서 사용되는 모든 변수를 선언해야합니다.

If IsUnresolvableReference(V), throw a ReferenceError exception.

그래서 네 변수가 어떤 값으로 초기화되지 않은 경우에도 var a, b 같이 선언되어야한다라고하는 the spec에 따라

그것은 bahaviour 수 있습니다. 당신이 a 변수의 정의를 제거하면

2

더 이상 작동하지 않는 이유는 a 변수가 더 이상 정의되어 있지 않고 정의되지 않은 변수로 javascript를 위반하고 있기 때문입니다. 삭제하면

if (a > 0) { 
alert ("a > 0"); 
} 

나머지 코드가 작동합니다.

2

, 오류를 얻을 :

ReferenceError: a is not defined 

및 스크립트가 중지됩니다.

3

변수를 제거하면 자바 스크립트가 오류 (ReferenceError)를 보게되므로 나머지 코드 버디는 실행되지 않습니다.

관련 문제