bismoney
@bismoney

Js проверка isset?

Ребят, подскажите пожалуйста.
Чем такой вариант проверки плох?
https://habr.com/ru/sandbox/44911/
Нашел на хабре, уже более 9 лет прошло.
Протестировал на проекте node js, но не могу понять почему это не используется?
Есть какие-то подводные камни?
И как сделать проверки в node js короче что бы проверить '',null,undefined?
  • Вопрос задан
  • 105 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Оператор ! - это булево отрицание. И он приводит свой аргумент к типу boolean. Автор не открыл Америку, и это используется. Но использовать нужно с умом.
Значения приводимые к false - это undefined, null, '' (пустая строка), 0, 0n (bigint 0), NaN.
Соответственно, когда у нас есть например строка или undefined или например число или undefined - такая проверка на undefined может быть небезопасна, так как она отсечет еще и пустую строку, 0 и NaN.

!! - это всего лишь 2 идущих подряд оператора !, это такое популярное сокращение для быстрого каста к boolean.
Еще автор статьи предлагает использовать !!!, но это бессмысленно, так как тройное отрицание даст тоже самое что и одинарное.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
profesor08
@profesor08 Куратор тега JavaScript
!!someVar - зачем делать приведение типа и инвертировать его? Надо проверить переменную на undefined? Ну так проверь. Надо узнать объявлено ли что-то? Ну так узнай не является ли тип undefined.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы