Как проверить наличие неопределенного в JavaScript

Для сравнения значений в JavaScript вам, вероятно, знаком тройной знак равенства. Оператор тройного равенства проверяет строгое равенство между двумя значениями. Оба сравниваемых типа данных и должны быть абсолютно одинаковыми.

Двойное равенство проверяет на свободное равенство и преобразует принуждение типа . Это означает, что мы сравниваем два значения после преобразования их в общий тип.

Пример строгого равенства

//app.jsconsole  .log (11 === 11); console.log ('Милли' === 'Милли'); console.log (true === true); 

Вывод

 truetruetrue 

Пример нестрогого равенства

//app  .jsconsole.log (11 === '11'); console.log (undefined === 'undefined'); console.log (true === 'true'); 

Вывод

 falsefalsefalse 

Мы можем проверить неопределенную проверку JavaScript с помощью оператора тройного равенства, и он возвращает правильный результат.

JavaScript check undefined

Чтобы проверить undefined в JavaScript используйте оператор тройного равенства ( ===) . В современных браузерах вы можете напрямую сравнить переменную с undefined, используя оператор тройного равенства.

Есть еще два способы проверить, не определена ли переменная в JavaScript, но эти способы не рекомендуются. Это два следующие.

  1. JavaScript typeof operator
  2. JavaScript void operator

Выше операторы могут проверять переменную по строке ‘ undefined’ , а не по свойству undefined.

Таким образом, это вызовет ошибку при создании кода в будущем. Поэтому я рекомендую вам не использовать эти операторы. Вместо этого используйте оператор тройного равенства (==). Это даст вам точный требуемый результат.

Синтаксис

 if (name === undefined) {...}  

//app.jslet data = undefined; if (data === undefined) {console.log (  'Да, на самом деле это не определено');} 

Вывод

 Да, на самом деле это не определено 

Вы можете видеть, что оператор if имеет значение true и записал его в журнал.

Из ECMAScript 5 значение undefined не определено . Свойство undefined имеет атрибуты {[[Writable]]: false , [[Enumerable]]: false , [[Configurable]]: false }.

В современных браузерах невозможно переназначить глобальное неопределенное значение на любая переменная.

Однако для старых браузеров javascript допускал повторное присвоение неопределенного значения следующим образом:

 undefined = "data" 

Но это уже не так.

JavaScript typeof

Javascript typeof — это встроенный оператор, который возвращает строку, указывающую тип неоцененного операнда. Оператор возвращает тип данных своего операнда в виде строки.

//app.jslet data = undefined; console.log (typeof (data)); 

Вывод

 undefined 

typeof возвращает строку, которая сообщает тип операнда. Он используется без круглых скобок, передавая ему любое значение, которое необходимо проверить. См. Следующий код.

//app.jslet data = undefined; if (typeof (data) === undefined) {console.log ('Да, на самом деле это undefined');}  

Если вы запустите приведенный выше код, вы не увидите записанный оператор, потому что оператор if возвращает

Это потому, что оператор typeof () проверяет и сравнивает переменные как строку, а не другие значения. Итак, если вы напишете « undefined», тогда он вернет true и запишет оператор.

//app.jslet data = undefined; if (typeof  (data) === 'undefined') {console.log ('Да, на самом деле это не определено');} 

Вывод

 Да, на самом деле это не определено 

Мы написали undefined как ‘ undefined’, и теперь он соответствует с переменной данных и возвращает true.

Если значение не определено, typeof возвращает ‘ undefined’ строка .

Вот почему вы не используете метод typeof () для проверки, является ли переменная неопределенной или нет в JavaScript.

Оператор void в JavaScript

Оператор void проверяет данное выражение и затем возвращает undefined .

Вы можете использовать оператор void, чтобы получить значение undefined . Это будет работать, даже если глобальное значение window.undefined было перезаписано.

Посмотрите следующий код и узнайте, как использовать оператор void для проверки наличия undefined .

//app.jslet data = undefined; if (data === void (0)) {console.log ('Да, на самом деле это не определено'  );} 

Вывод

 Да, на самом деле это не определено 

Ноль (0 ) в приведенном выше примере кода не имеет особого значения, и вы можете использовать 1 или function () {}. void (something) всегда будет оцениваться как undefined .

Сделайте это при использовании void или typeof

Избегайте дословного использования void (0) или typeof === «undefined» в коде. Эти выражения не требуют пояснений и должны быть заключены в пользовательскую функцию, например функцию isUndefined () , как показано ниже.

//app.jslet data =  undefinedconst isUndefined = (значение) => {let undefined = void (0);  возвращаемое значение === undefined;} консоль. log (isUndefined (data)); 

Вывод

 true 

Из вывода, вы можете видеть, что данные не определены, а функция возвращает истину. Если вы хотите использовать void (), вы можете использовать его следующим образом, но я снова не рекомендую это решение.

Заключение

Чтобы проверить, не определена ли какая-либо переменная в JavaScript, используйте оператор тройного равенства (===). Оператор тройного равенства полностью поддерживает современные браузеры и возвращает правильный результат.

См. Также

тернарный оператор JavaScript

оператор JavaScript instanceof

оператор удаления JavaScript

оператор rest JavaScript

оператор распространения JavaScript

Оцените статью
nanomode.ru
Добавить комментарий