나는이 (가)의 구조를 두 번 동일 교체하려면 다음과 같은 경우 문 :자바 스크립트 비교 == null의 대안 자바 스크립트 코드에서
if(name == null) {
//do stuff
}
이중 등호 (=)가 권장 년대 jshint 규칙 "eqeqeq"실패 double equals를 triple equals로 대체합니다.
if(name === null) {
//do stuff
}
이 변수 위해 일하는 것이 명시 적으로 값 null
을 가진 정의,하지만 불행히도이 같은 미 설정 변수에 대한 실패 : 잠시 들어, 다음과 같이 === null
에 == null
변경 위의 코드를 가정 해 봅시다. 규칙을 트리플가-동일 이전
var a = null; // works correctly
var b; // will fail in comparison
내가 다음
if(name === null ||| typeof(name) === 'undefined')
할 것 나에게 중요했지만, 난이 매우 비 대한 찾을 수 있습니다.
: 는내가 지금 가지고 올 수있는 최선의 대안은 경우 문의 성격을 사용하고 내가 표현을 부정하고 단순히 == null
부분을 제거 여기에 같은 거짓 틱 표현으로 평가하도록하는 것입니다
if(!name) {
//do stuff
}
나를 위해,이 방법은 훨씬 간단하고 읽기 쉽고 명백한 같음 비교를 완전히 피할 수 있습니다. 그러나 나는 여기에서 빠져 나가는 가장자리 원인이 있는지 불확실하다.
질문은 대체로 == null
을 negated expression if 문으로 대체 할 수 있습니까? 그렇다면 작동하지 않는 함정과 예외는 무엇입니까? 일반 배열 항목, 문자열, 객체 속성에서 작동합니까? 솔루션을 따기위한
내 기준이 될 것입니다
- 깨끗한 코드
- 읽고 신속하게
- 가 (2015 1월 작성으로) 현대적인 브라우저에서
- 작품 jshint 규칙의 유효성을 확인 이해하기 쉬운
나는 difference in the equality operators ==
vs ===
에 대해 논의하기 위해 다른 약간의 질문이 있음을 알고 있지만 if 문 내부의 null-ish와 비교되는 평가에 대한 설명 일뿐입니다.
'==='규칙은 * 크게 과대 평가되었으므로 아마도 꺼 버릴 것입니다. –
나는 다른 이유로 <==='규칙을 좋아한다 : 문자열 비교. 대신 가장 이상한 점은 자바 스크립트가 원래'=='와'==='를 모두 도입했다는 것입니다. 이로 인해 일어날 수있는 오류가 발생합니다. –