JavaScript

Пожалуйста объясните человеческим языком где и как используется значение undefined и null в JavaScript ?

Пожалуйста объясните своим языков где и как используется значение null и undefined желательно с примером прошу не писать не чего лишнего
(function (x) { return x; })(); // здесь ожидается переменная x, но она не инициализирована
(function () { return document.querySelector('#xbf6gsf4d'); })(); // здесь ожидается HTML-объект с id='xbf6gsf4d', которого нет в DOM
// Вставляй код функций по очереди в консоль JavaScript и прочувствуй разницу! А то задолбал уже всех)
Юра Лапаев
Юра Лапаев
54 535
Лучший ответ
undefined – неопределенный тип данных. Например, если обратиться к переменной, которой не присвоено никакое значение. У null это значение 0, пустота, а в случае undefined переменная есть, но значение вообще не определено.

На практике... Ну вот

var node = null;
function selectNextNode() {
resetColor();
if (node == null) {
var list = document.getElementById("list");
node = list.firstChild;
node.setAttribute("style", "color:green");
return;
}
// Получение следующего элемента, которые в дереве находиться на одном уровне.
node = node.nextSibling;
if (node != null) {
node.setAttribute("style", "color:green");
}
}

Цель функции перемещаться по элементам списка и перекрашивать следующий дочерний элемент в зеленый цвет.
Если переменная node пуста – тогда находим список, находим первый дочерний элемент, перекрашиваем его в зеленый цвет и прекращаем работу функции ключевым словом return.
Но когда опять нажимаем на кнопку «показать следующий узел» – снова сбрасываем все цвета. В первое условие уже не попадаем, так как в предыдущий раз в переменную node был записан объект и она не пуста.
Записываем в node следующий узел.
Проверяем не последний ли это узел, так как у последнего узла ниже лежащих сестринских узлов уже нет. Если в переменной node будет null – снова попадем в первое условие.
undefined используется, если у тебя где-то определяется переменная, но в данном конкретном участке кода ещё не известно, определена она или нет. Например, если по нажатию на кнопку у тебя создаётся какой-нибудь массив, а ты уже запускаешь проверку этого массива, тогда if (typeof массив == 'undefined') позволит избежать попыток обратиться к элементу якобы массива, которого не существует.

null можешь присваивать чему хочешь, это обычный такой тип данных. Например, переменную можно проинициализировать null'ом, чтобы потом проверять, заполнена она уже чем-то или нет. Функция может вернуть null при каких-то условиях. Скажем, ищешь ты позицию слова относительно указанной позиции в тексте. Отрицательные числа — влево от указанной позции, положительные — справа. И что же вернуть, когда вообще ничего не найдено? null тут хорошо подойдёт, но можно и false, это уж кому как.
Рустам Ярали
Рустам Ярали
78 668
null означает например на столе стакана нет .
undefined означает, что стакан есть но пустой .
ИШ
Игорь Швец
59 848
Юра Лапаев ...и без дна)