В JavaScript, если переменная была объявлена, но ей не было присвоено значение, ей автоматически присваивается значение undefined. Поэтому, если вы попытаетесь отобразить значение такой переменной, будет отображаться слово «undefined». А null — это специальное значение присваивания, которое может быть присвоено переменной как представление без значения.

Проще говоря, значение null означает отсутствие значения, а undefined означает переменную, которая была объявлена, но еще не имеет значения.

Чтобы проверить, является ли переменная undefined или null, вы можете использовать оператор равенства == или оператор строгого равенства === (также называемый оператором идентичности). Давайте посмотрим на следующий пример:

<script>
var firstName;
var lastName = null;
// Попробуйте получить несуществующий элемент DOM
var comment = document.getElementById('comment');

console.log(firstName); // Печатает: undefined
console.log(lastName);  // Печатает: null
console.log(comment);   // Печатает: null

console.log(typeof firstName); // Печатает: undefined
console.log(typeof lastName);  // Печатает: object
console.log(typeof comment);   // Печатает: object

console.log(null == undefined)  // Печатает: true    
console.log(null === undefined) // Печатает: false

/* Поскольку null == undefined истинно, следующие операторы будут перехватывать как null, так и undefined */
if(firstName == null){
    alert('Variable "firstName" is undefined.');
}    
if(lastName == null){
    alert('Variable "lastName" is null.');
}

/* Поскольку null === undefined ложно, следующие операторы будут перехватывать только null или undefined  */
if(typeof comment === 'undefined') {
    alert('Variable "comment" is undefined.');
} else if(comment === null){
    alert('Variable "comment" is null.');
}
</script>

Если вы попытаетесь проверить значения null с помощью оператора typeof, он не будет работать должным образом, потому что JavaScript возвращает «объект» для typeof null вместо «null».

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

Ключевое слово undefined в JavaScript не является зарезервированным, поэтому можно объявить переменную с именем undefined. Итак, правильный способ проверить неопределенную переменную или свойство — использовать оператор typeof, например: if(typeof myVar === 'undefined').

Читайте также

Похожие посты

How to increase and decrease image size using JavaScript

Answer: Use the JavaScript width и height property You can use either width or height JavaScript property to proportionally increase и decrease the dimension of an image like zoom-in и zoom-out feature. Let’s take a look at the following example to understи how it basically works: Пример <!DOCTYPE html> <html lang=»en»> <head> <meta charset=»utf-8″> <title>JavaScript…

Как сделать паузу при выполнении скрипта в JavaScript

Вы можете просто использовать метод setTimeout(), чтобы сделать паузу, прежде чем продолжить выполнение кода в JavaScript. Время задержки выполнения скрипта указывается в миллисекундах (тысячных долях секунды). Давайте посмотрим следующий пример, чтобы понять, как это работает: Как вы заметили в предыдущем примере, JS-код после метода setTimeout() продолжает выполнение. Однако, если вам нужен настоящий «сон», когда все…

Как перебрать массив в JavaScript

Самый простой способ перебрать массив в JavaScript — использовать цикл for. В следующем примере показано, как вывести все значения массива в JavaScript по очереди. В качестве альтернативы вы можете использовать недавно представленный цикл for-of в ES6 для итерации по массиву, например: См. Руководство по ES6-функциям JavaScript, чтобы узнать о новых функциях, представленных в ES6.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.