[javascript] JavaScript에서 null 값을 확인하려면 어떻게합니까?
JavaScript에서 null 값을 확인하려면 어떻게합니까? 아래 코드를 작성했지만 작동하지 않았습니다.
if (pass == null || cpass == null || email == null || cemail == null || user == null) {
alert("fill all columns");
return false;
}
JavaScript 프로그램에서 오류를 어떻게 찾을 수 있습니까?
답변
자바 스크립트는 “널 (null)”값 확인과 관련하여 매우 유연합니다. 실제로 빈 문자열을 찾고 있다고 추측합니다.이 경우이 간단한 코드가 작동합니다.
if(!pass || !cpass || !email || !cemail || !user){
빈 문자열 (확인되는 ""
), null
, undefined
, false
및 숫자 0
와NaN
특별히 번호를 확인하는 경우가 미스에 대한 일반적인 실수는 것을 바랍니다 참고 0
이 방법은, 그리고 num !== 0
선호 (또는 num !== -1
또는 ~num
(해키 코드은 또한 검사에 대한 -1
)) 함수를 돌려 -1
, 예를 들어 indexOf
)
답변
null을 구체적으로 확인하려면 다음을 사용하십시오.
if (variable === null)
이 테스트는 것입니다 만 위한 통과 null
및 위해 통과하지 않을 것이다 ""
, undefined
, false
, 0
, 또는 NaN
.
또한 각 “false-like”값 (에 대해 true를 반환하는 값)에 대한 절대 검사를 제공했습니다 !variable
.
일부 절대 점검의 경우 absolutely equals: ===
and 사용을 구현해야합니다 typeof
.
JSFiddle을 여기에서 만들어 모든 개별 테스트가 작동하는지 보여줍니다.
각 검사 결과는 다음과 같습니다.
Null Test:
if (variable === null)
- variable = ""; (false) typeof variable = string
- variable = null; (true) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
Empty String Test:
if (variable === '')
- variable = ''; (true) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
Undefined Test:
if (typeof variable == "undefined")
-- or --
if (variable === undefined)
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (true) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
False Test:
if (variable === false)
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (true) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (false) typeof variable = number
Zero Test:
if (variable === 0)
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (true) typeof variable = number
- variable = NaN; (false) typeof variable = number
NaN Test:
if (typeof variable == 'number' && !parseFloat(variable) && variable !== 0)
-- or --
if (isNaN(variable))
- variable = ''; (false) typeof variable = string
- variable = null; (false) typeof variable = object
- variable = undefined; (false) typeof variable = undefined
- variable = false; (false) typeof variable = boolean
- variable = 0; (false) typeof variable = number
- variable = NaN; (true) typeof variable = number
보시다시피, 테스트하기가 조금 더 어렵습니다 NaN
.
답변
바로 교체 ==
와 ===
모든 장소에서 가능합니다.
==
느슨하거나 추상적 인 평등 비교
===
엄격한 평등 비교입니다
자세한 내용은 평등 비교 및 동일성에 대한 MDN 기사를 참조하십시오 .
답변
엄격한 평등 연산자 :-
우리는 null을 확인할 수 있습니다 ===
if ( value === null ){
}
사용하여 if
if( value ) {
}
값이 아닌 경우 true로 평가됩니다 .
- 없는
- 찾으시는 주소가 없습니다
- NaN
- 빈 문자열 ( “”)
- 그릇된
- 0
답변
null
구문 을 명시 적으로 확인 하지만 간단한 구문 으로 허용되는 답변보다 개선되었습니다 .
if ([pass, cpass, email, cemail, user].every(x=>x!==null)) {
// your code here ...
}
// Test
let pass=1, cpass=1, email=1, cemail=1, user=1; // just to test
if ([pass, cpass, email, cemail, user].every(x=>x!==null)) {
// your code here ...
console.log ("Yayy! None of them are null");
} else {
console.log ("Oops! At-lease one of them is null");
}
답변
먼저 함수 본문이없는 return 문이 있습니다. 오류가 발생할 가능성이 있습니다.
보다 확실한 확인 방법은 간단히! 운영자:
if (!pass || !cpass || !email || !cemail || !user) {
alert("fill all columns");
}
답변
드디어 try catch를 사용할 수 있습니다
try {
document.getElementById("mydiv").innerHTML = 'Success' //assuming "mydiv" is undefined
} catch (e) {
if (e.name.toString() == "TypeError") //evals to true in this case
//do something
} finally {}
당신은 또한 throw
당신의 자신의 오류 를 할 수 있습니다 . 참조 이 .