8

Как проверить значение на null в JavaScript?

6

Как я могу проверить на наличие null значений в JavaScript? Я написал следующий код, но он не работает.

if (pass == null || cpass == null || email == null || cemail == null || user == null) {
  alert("Пожалуйста, заполните все поля");
  return false;
}

5 ответ(ов)

10

JavaScript очень гибок в отношении проверки значений "null". Я предполагаю, что вы на самом деле хотите проверить на пустые строки, в таком случае следующий код будет проще:

if(!pass || !cpass || !email || !cemail || !user){

Этот код проверит на наличие пустых строк (""), null, undefined, false, а также чисел 0 и NaN.

Обратите внимание, что если вы конкретно проверяете числа, то распространённой ошибкой является некорректная обработка 0 с помощью этого метода. Рекомендуется использовать num !== 0 (или num !== -1, или хакерский код ~num, который также проверяет на -1) для функций, которые возвращают -1, например, indexOf.

0

Оператор строгого равенства:

Мы можем проверить значение на null с помощью оператора ===:

if (value === null) {
    // Ваш код здесь
}

Просто используя if:

if (value) {
    // Ваш код здесь
}

Это будет истинным, если значение не:

  • null
  • undefined
  • NaN
  • пустая строка ("")
  • false
  • 0
0

Вот улучшение над принятым ответом с явной проверкой на null, но с упрощённым синтаксисом:

if ([pass, cpass, email, cemail, user].every(x => x !== null)) {
    // ваш код здесь ...
}
// Тест
let pass = 1, cpass = 1, email = 1, cemail = 1, user = 1; // просто для теста

if ([pass, cpass, email, cemail, user].every(x => x !== null)) {
    // ваш код здесь ...
    console.log("Ура! Ни один из них не равен null");
} else {
    console.log("Ой! Хотя бы один из них равен null");
}

В этом примере мы используем метод every, чтобы проверить, что все элементы массива не равны null. Если это так, выполняется указанный код. Это позволяет избежать многократных проверок и делает код более читабельным.

0

Во-первых, у вас есть оператор return без тела функции. Это, вероятно, вызовет ошибку.

Более чистый способ выполнить вашу проверку — просто использовать оператор !:

if (!pass || !cpass || !email || !cemail || !user) {
    alert("Заполните все поля");
}

Такой подход улучшит читаемость вашего кода и упростит его поддержку.

0

Метод Object.is() может быть использован для определения, являются ли два значения одинаковыми. Таким образом, его можно использовать для проверки, равен ли объект null.

Проверка на значения null

let testA = null; // null
//console.log(Object.is(testA, null)); // true // null === null

if(Object.is(testA, null)) {
  console.log("Это значение Null");
}
Вывод:
Это значение Null
let x = null;
if (x === null) {
  console.log("x равен null");
}
Вывод:
x равен null

Проверка на значения undefined (переменная объявлена, но значение не присвоено).

let testB; // undefined
//console.log(Object.is(testB, undefined)); // true // undefined === undefined

if(Object.is(testB, undefined)) {
  console.log("Это значение undefined");
}
Вывод:
Это значение undefined

Если объект не был объявлен, использовать Object.is() не получится. В качестве альтернативы можно попробовать следующее:

if (typeof x === "undefined") {
  console.log("x равен undefined");
}
Вывод:
Значение либо undefined, либо null

Дополнительную информацию о методе Mozilla Object.is() можно найти здесь: MDN Web Docs

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь