Где использовать нулевой оператор в javascript?
function test(val) {
const hasError = val ?? true;
if (hasError) {
//error handling...
} else {
//do something...
}
}
test(null) //error handling...
test(undefined) //error handling...
test('text') //error handling...
test(true) //error handling...
как в этом случае я хочу отфильтровать 'null' и 'undefined'
но это работа всех истинных ценностей.
Так что у меня есть только один вариант...
const hasError = (val === undefined || val === null);
Есть ли способ использовать в этом случае нулевой оператор?
а когда вообще используется нулевой оператор?
благодарю вас
1 ответ
Если ты уверен, что
const hasError = (val === undefined || val === null);
фиксирует нужную вам логику, тогда проблема в том, что
const hasError = val ?? true;
дает вам обратное, если вы впоследствии собираетесь использовать этот флаг вif
выражение. Вы бы действительно хотели следовать за
if (hasError !== true)
что действительно сбивает с толку (меня). Вместо этого вы можете подумать о??
оператор дает вам обратное:
const noError = val ?? true;
if (!noError)
что имеет немного больше смысла. Лично я бы использовал
const hasError = val == null;
или просто выполните тест в if
прямо.