Как проверить значение на null в JavaScript?
Как я могу проверить на наличие null значений в JavaScript? Я написал следующий код, но он не работает.
if (pass == null || cpass == null || email == null || cemail == null || user == null) {
alert("Пожалуйста, заполните все поля");
return false;
}
5 ответ(ов)
JavaScript очень гибок в отношении проверки значений "null". Я предполагаю, что вы на самом деле хотите проверить на пустые строки, в таком случае следующий код будет проще:
if(!pass || !cpass || !email || !cemail || !user){
Этот код проверит на наличие пустых строк (""), null, undefined, false, а также чисел 0 и NaN.
Обратите внимание, что если вы конкретно проверяете числа, то распространённой ошибкой является некорректная обработка 0 с помощью этого метода. Рекомендуется использовать num !== 0 (или num !== -1, или хакерский код ~num, который также проверяет на -1) для функций, которые возвращают -1, например, indexOf.
Оператор строгого равенства:
Мы можем проверить значение на null с помощью оператора ===:
if (value === null) {
// Ваш код здесь
}
Просто используя if:
if (value) {
// Ваш код здесь
}
Это будет истинным, если значение не:
- null
- undefined
- NaN
- пустая строка ("")
- false
- 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. Если это так, выполняется указанный код. Это позволяет избежать многократных проверок и делает код более читабельным.
Во-первых, у вас есть оператор return без тела функции. Это, вероятно, вызовет ошибку.
Более чистый способ выполнить вашу проверку — просто использовать оператор !:
if (!pass || !cpass || !email || !cemail || !user) {
alert("Заполните все поля");
}
Такой подход улучшит читаемость вашего кода и упростит его поддержку.
Метод 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
Существует ли стандартная функция для проверки переменных на null, undefined или пустые значения в JavaScript?
Как проверить, является ли строка пустой/неопределенной/нуль в JavaScript?
Сортировка массива объектов по значению строкового свойства
Почему сравнение строк с помощью '==' и 'is' иногда дает разные результаты?
Почему null является объектом и в чем разница между null и undefined?