Mam zmienną. Nazwijmy to toto
.
Może toto
to być ustawione na undefined
, null
ciąg lub obiekt.
Chciałbym sprawdzić, czy toto
jest ustawiony na dane, co oznacza ustawiony na ciąg lub obiekt, a nie na undefined
ani null
, i ustawić odpowiednią wartość logiczną w innej zmiennej.
Pomyślałem o składni !!
, która wyglądałaby tak:
var tata = !!toto; // tata would be set to true or false, whatever toto is.
Pierwsza !
byłaby ustawiona na, false
jeśli toto jest undefined
lub null
i true
inaczej, a druga odwróciłaby to.
Ale wygląda to trochę dziwnie. Czy jest więc jaśniejszy sposób na zrobienie tego?
Już przyjrzałem się temu pytaniu , ale chcę ustawić wartość w zmiennej, a nie tylko sprawdzić to w if
instrukcji.
javascript
boolean-expression
Aracthor
źródło
źródło
Odpowiedzi:
Tak, zawsze możesz tego użyć:
var tata = Boolean(toto);
A oto kilka testów:
for (var value of [0, 1, -1, "0", "1", "cat", true, false, undefined, null]) { console.log(`Boolean(${typeof value} ${value}) is ${Boolean(value)}`); }
Wyniki:
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
źródło
Boolean("false")
.false
jest pusty ciąg (""
).Możesz użyć
Boolean(obj)
lub!!obj
do konwersjitruthy/falsy
natrue/false
.var obj = {a: 1} var to_bool_way1 = Boolean(obj) // true var to_bool_way2 = !!obj // true
źródło