Вопрос по javascript – При объявлении переменной в javascript значение по умолчанию является нулевым?

20

Если у меня есть объявление следующим образом:

var j;

делаетj==null пока я не установлю это равным чему-то?

j==null будетtrue, но не потому чтоj являетсяnull, Вместо этого это потому, чтоj являетсяundefined, но== оператор делает приведение типа.== считаетnull а такжеundefined быть равным.=== оператор строгий и не делает никакого принуждения. cliffs of insanity

Ваш Ответ

1   ответ
32

Нет, он имеет значение по умолчаниюundefined
Но если хотите использовать!j условие, оно будет работать с обоими значениями (т.е.undefined или жеnull)

Обратите внимание, что(j==null) являетсяtrue, но(j===null) являетсяfalse... JavaScript имеет & quot; ложь & quot; значения и иногда неожиданные правила для преобразования значений, а также фантазии=== оператор для сравнения значения и типа одновременно.

На самом деле, j == null будет иметь значение true, j === null будет false. (Но да, значение по умолчанию не определено, так как j === undefined будет истинным).
поэтому будет ли запись k === null оценена в true, поскольку переменная k не существует? также я предполагаю, что могу использовать противоположное, и сказать «если (j)», и это будет оцениваться как ложь, правильно? thisissami
@thisissami нет, он выдаст ReferenceError. Хитрая вещь, чтобы получить это то, чтоundefinedError: User Rate Limit Exceedednull а такжеundefinedони похожи, но разные.
комментарий удален, но я покидаюECMA reference on equality comparison.
Они могут быть установлены вручную или установлены значениями, возвращаемыми из функций, таких как document.getElementById (elementThatDontExists);

Похожие вопросы