Уточнение вопросов о нуле и неопределенных в JS

Я пытался расшифровать объяснения о null и undefined в JS, здесь, в stackru и в других местах. Я думаю, что вижу, где появляется определенное количество недопонимания.

Для неопытных разработчиков, когда консоль сообщает нам, что переменная или свойство не определены, это является результатом ошибки в кодировании (пример: я забыл дать значение переменной или вернуть значение из функции). Это означает, что Javascript назначил мне неопределенную переменную или свойство.

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

Теперь в некотором примере кода мы видим оператор if, такой как if (x === null) {некоторый код}, и мы понятия не имеем, почему x будет равен нулю, или как null мог быть назначен x

Большинство объяснений, здесь о переполнении стека и в других местах, показывают примеры, где null назначается явно (например, var y = null). То есть, ноль не является результатом ошибки кодирования, и Javascript не назначает ноль. Нулевое значение должно быть назначено программистом (почему они это делают, тоже загадка).

Теперь я попытался заставить скрипт вернуть значение null, создав объект, установив его свойства и использовав delete для удаления значений этих свойств, полагая, что это даст мне: obj === null // true, но я получаю false (потому что obj === undefined // true)

Также попробовал это:

var A = function(name) {
this.name = name;
}

var a = new A('alpha');
a.name; //'alpha'

A.prototype = {x:23};

a.x; //according to tutorial, this was supposed to have returned *null*, but instead returned *undefined*

Итак, вопрос в том, как я могу "заставить скрипт вернуть ноль"?

0 ответов

Другие вопросы по тегам