[javascript] null이 아닌 자바 스크립트 검사

아래는 코드 조각으로 양식 값을 검색합니다. 추가 처리 전에 값이 널이 아닌지 점검하십시오.

var val = document.FileList.hiddenInfo.value;
alert("val is " + val);  // this prints null which is as expected
if (val != null)
{
   alert("value is "+val.length); // this returns 4
}
else
{
   alert("value* is null");
}

왜 그런 일이 발생하는지 어떤 아이디어 .. ??



답변

val이 아니지만 문자열로 null포함되어 있기 때문 'null'입니다.

‘null’로 확인하십시오.

if ('null' != val)

작동시기 및 이유에 대한 설명은 아래 세부 정보를 참조하십시오 .


답변

이것은 당신을 위해 트릭을 할 것입니다

if (!!val) {
    alert("this is not null")
} else {
    alert("this is null")
}


답변

“null이 아님”을 확인하는 세 가지 방법이 있습니다. 권장 사항은 Strict Not Version을 사용하는 것입니다.

1. 엄격한 버전 아님

if (val !== null) { ... }

엄격하지 않은 버전은 “엄격한 평등 비교 알고리즘”을 사용합니다 http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6 합니다. 는 !==댄, 빠른 성능을 !=완전 항등 비교 알고리즘 값 캐스트하지 않기 때문에 운영자.

2. 엄격하지 않은 버전

if (val != 'null') { ... }

엄격하지 않은 버전은 “추상 평등 비교 알고리즘” http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3을 사용 합니다. 는 !=댄 느린 성능이 !==요약서 동일성 비교 알고리즘 타입 변환 값 때문에 운전자.

3. 더블이 아닌 버전

if (!!val) { ... }

Double Not Version !!은 Strict Not Version !==과 Non-Strict Not Version !=( https://jsperf.com/tfm-not-null/6 ) 보다 성능이 더 빠릅니다 . 그러나 “Falsey”값 을 False ( http://www.ecma-international.org/ecma-262/5.1/#sec-9.2 ) undefined와 같은 형식으로 캐스트 하면 예기치 않은 결과가 발생할 수 있으며 가독성이 떨어집니다. 명시 적으로 언급되지 않았습니다.NaNnull


답변

!==as !=를 사용 하면 전 이적이지 않은 JavaScript 진리표의 이상한 세계 로 안내 할 수 있습니다.


답변

엄격한 not equals비교 연산자 !==를 사용하여 사용자가 입력 "null"하면에 접근 할 수 없도록해야합니다 else.


답변

val이 실제로 값이 "null"아닌 문자열 이기 때문일 수 있습니다 null.


답변

이것은 잘 작동합니다 ..

   if(val!= null)
    {
       alert("value is "+val.length); //-- this returns 4
    }
    else
    {
       alert("value* is null");
    }