Где использовать нулевой оператор в 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 прямо.

Другие вопросы по тегам