변수가 null이 아닌지 확인하는 방법?
변수가 아닌지 확인하는 JavaScript의 두 가지 방법이 아래에 있음을 알고 null
있지만 사용하기 가장 좋은 방법은 혼란 스럽습니다.
내가해야합니까 :
if (myVar) {...}
또는
if (myVar !== null) {...}
그것들은 동등하지 않습니다. 첫 번째 는 진실한if
경우 (즉 , 조건부로 평가되는 경우 myVar
) 명령문 다음에 블록을 실행하는 반면, 두 번째는 이외의 값 이면 블록을 실행합니다 .true
myVar
null
JavaScript에서 진실이 아닌 유일한 값은 다음과 같습니다 (일명 거짓 값).
null
undefined
0
""
(빈 문자열)false
NaN
변수가 NULL이 아닌지 테스트하는 방법은 다음과 같습니다.
if (myVar !== null) {...}
myVar가 null이 아닌 경우 블록이 실행됩니다. myVar가 정의되지 않았거나 false이거나 0
또는 NaN
다른 항목 인 경우 실행됩니다 .
이 게시물을 읽으십시오 : http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/
일반적으로 JavaScript에 대한 유용한 팁이 있지만 언급 한 가지는 다음과 같이 null을 확인해야한다는 것입니다.
if(myvar) { }
또한 당신이 깨달을 수없는 '거짓'으로 간주되는 것을 언급합니다.
- 내부의 코드 는 다음과 같은
if(myVar) { code }
경우에만 실행되지 않습니다myVar
:false, 0, "", null, undefined, NaN
또는 변수를 정의하지 마십시오myVar
(추가로 코드 실행을 중지하고 예외를 throw). - 내부의 코드 는 같 거나 정의
if(myVar !== null) {code}
하지 않은 경우에만 실행되지 않습니다 (예외 발생).myVar
null
여기에 모든 것이 있습니다 ( src )
만약
== (그것의 부정 ! = )
=== (그것의 부정 ! == )
내가 방금 본 또 다른 가능한 시나리오가 있습니다.
나는 아약스 호출을하고 문자열 형식으로 데이터를 null로 되 돌렸다. 나는 이것을 다음과 같이 확인해야했다.
if(value != 'null'){}
따라서 null은 실제로 null이 아닌 "null"을 읽는 문자열이었습니다.
편집 : 내가 해야 할 방식으로 이것을 판매하지 않는다는 것을 이해해야합니다 . 이것이 유일한 방법 인 시나리오가있었습니다. 왜 백엔드를 쓴 사람이 데이터를 잘못 표시했는지 확실하지 않지만 실제로는 이것이 현실입니다. 그것이 옳지 않다는 것을 이해 한 사람이 실제로 투표 한 것을 보았을 때 실제로 도움이되는 사람에 의해 투표되는 것을 보는 것은 실망 스럽습니다.
if myVar
가 null이면 block이 다른 방식으로 실행되지 않으면 실행됩니다.
if (myVar != null) {...}
때로는 정의되지 않은 경우 준비하는 것이 좋습니다. 이를 위해 typeof를 사용했습니다.
if(typeof(variable) !== "undefined") {
//it exist
if(variable !== null) {
//and is not null
}
else {
//but is null
}
}
else {
//it doesn't
}
여기에 나열된 두 가지 조건문은 서로보다 낫지 않습니다. 사용 상황에 따라 다릅니다. 두 번째 예에서는 오타가 있습니다. 느낌표 뒤에는 등호가 하나만 있어야합니다.
첫 번째 예는 myVar 의 값 이 true 인지 확인 하고 {...} 내부의 코드를 실행합니다 .
두 번째 예는 myVar 가 null이 아닌지 평가 하고,이 경우 true이면 {...} 내부에서 코드를 실행합니다 .
더 많은 기술에 대한 조건문을 살펴 보는 것이 좋습니다. 일단 익숙해지면 필요할 때 결정할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/4361585/how-to-check-if-a-variable-is-not-null
'development' 카테고리의 다른 글
특정 table.column을 참조하는 외래 키가 있고 해당 외래 키에 대한 값이있는 모든 테이블을 찾는 방법은 무엇입니까? (0) | 2020.04.02 |
---|---|
ng-transclude 란 무엇입니까? (0) | 2020.04.02 |
C ++은 '최종'블록을 지원합니까? (0) | 2020.04.02 |
프린트와 풋의 차이점은 무엇입니까? (0) | 2020.04.02 |
Java에서 스레드를 올바르게 중지하는 방법은 무엇입니까? (0) | 2020.04.02 |