[javascript] 진실 또는 거짓을 명시 적 부울로 변환

변수가 있습니다. 그것을라고 부르 자 toto.

이것은 toto설정할 수 있습니다 undefined, null문자열, 또는 객체.

toto가 데이터로 설정 되어 있는지 확인하고 싶습니다. 즉, 문자열이나 객체로 설정되고 undefinednor가 아닌 null다른 변수에 해당 부울 값을 설정 한다는 의미입니다 .

나는 !!다음과 같은 구문을 생각했다 .

var tata = !!toto; // tata would be set to true or false, whatever toto is.

첫 번째 !falsetoto가 undefinedor nulland trueelse 이면 설정되고 두 번째는 반전됩니다.

하지만 조금 이상해 보입니다. 이 작업을 수행하는 더 명확한 방법이 있습니까?

나는 이미이 질문 을 보았지만 if명령문 에서 확인하는 것이 아니라 변수에 값을 설정하고 싶습니다 .



답변

예, 언제든지 다음을 사용할 수 있습니다.

var tata = Boolean(toto);

다음은 몇 가지 테스트입니다.

for (var value of [0, 1, -1, "0", "1", "cat", true, false, undefined, null]) {
    console.log(`Boolean(${typeof value} ${value}) is ${Boolean(value)}`);
}

결과 :

Boolean(number 0) is false
Boolean(number 1) is true
Boolean(number -1) is true
Boolean(string 0) is true
Boolean(string 1) is true
Boolean(string cat) is true
Boolean(boolean true) is true
Boolean(boolean false) is false
Boolean(undefined undefined) is false
Boolean(object null) is false


답변

Boolean(obj)또는 !!obj을 사용 truthy/falsy하여 true/false.

var obj = {a: 1}
var to_bool_way1 = Boolean(obj) // true
var to_bool_way2 = !!obj // true


답변