2014-09-21 3 views
1

나는(거짓 값) 모든 거짓 값에 대해 참으로 평가합니까?

if(value) { 

}

이 을하지, 값이 NOT NULL, 정의, NaN의 빈 문자열 (""), 0, 또는 false

의 경우는 true로 평가하지만 것이라는 점을 이해 if (! value) {} 값이 null, 정의되지 않음, NaN, 빈 문자열 (""), 0 또는 false 인 경우 true로 평가됩니까?

Google Scripts를 사용하고 있으며 일부 셀이 비어있는 스프레드 시트에서 데이터를 가져옵니다. 그 셀에 대해서는 값이 "빈 문자열"로 반환되는지, 예를 들어 undefined와 같은 다른 가능성보다 더 많이 반환되도록하고 싶습니다. (일부는 현재 'undefined'를 반환하고 있습니다.

나는 그것이 내가이하는 생각 않는 한,이 코드를 사용하고 싶습니다 :

if (! value) {value = ""} 

(I는이 스레드에서 시작 PS : Is there a standard function to check for null, undefined, or blank variables in JavaScript?하지만 대답은 반대 시나리오를 해결하지 않음)

답변

1

간단히 말해서, .

강제 변환 또는 truefalse 모든 falsey 값과 다른 값으로 바뀔 것이다 부정적인 ! 및 더블 네거티브 (Double Negative) !!를 사용하여 논리 값으로 값을 캐스팅 한 후 바로 어떠했는지 확인은 그들이 부울있어 알고 참 또는 거짓.

당신이 반대의 부울을하려는 경우 실제 값의 부울을 원한다면, 즉, 단지 !을 앞에 추가

, 앞에 추가 !!

!"" === true; //inverted 
!!"" === false;//actual 
0

예, 사람들은 true로 평가됩니다

if(!NaN){console.log('true!');} 
true! 
if(!undefined){console.log('true!');} 
true! 
if(!null){console.log('true!');} 
true! 
if(!''){console.log('true!');} 
true! 
if(!0){console.log('true!');} 
true!