Czy jest tak, że możemy poradzić sobie z wartościami fałszerstw || operatorów, którzy są leniwie oceniani?Unikanie pułapek z przypisywaniem wartości Falsy w domyślnych ustawieniach?
Tak więc, na przykład, jeśli mamy:
function isOldEnough(age) {
age = age || 18;
return age;
}
isOldEnough(0) // returns 18 because 0 is falsy
W ES6, można po prostu zadeklarować jak
function isOldEnough(age = 18) { ... }
Czy istnieje anythning możemy zrobić w ES5 aby uniknąć tego problemu?
użycie 'zerowych = value' rachunków zarówno'! undefined' i 'null' ale nie dla' false' lub '0' –
Naprawdę używałbym tylko || jeśli wiem, że obiekt jest przekazywany. Być może lepiej sprawdzić, czy wiek jest równy niezdefiniowanemu? –
z drugiej strony, jeśli chcesz obsłużyć 'undefined',' null', 'false',' 0', puste ciągi/tablice jednolicie jako 'false' używają' !! value', przekształcą 'value' na boolean obsługa pustych/niezdefiniowanych wartości oraz –