Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Операторы сравнения, null, undefined, number 0, empty string("") (https://javascript.ru/forum/misc/12055-operatory-sravneniya-null-undefined-number-0-empty-string.html)

alexeis 28.09.2010 17:54

Операторы сравнения, null, undefined, number 0, empty string("")
 
Почему
null == 0 // false
null == "" // false
undefined == 0 // false
undefined == "" // false

null == undefined // true
0 == "" // true

?

DooMer 28.09.2010 18:30

Цитата:

Сообщение от alexeis (Сообщение 72218)
Почему
null == 0 // false
null == "" // false
undefined == 0 // false
undefined == "" // false

null == undefined // true
0 == "" // true

?

Строки при сравнении с числом приводяться к числу '' приводиться к 0

alexeis 28.09.2010 18:34

Цитата:

Сообщение от DooMer (Сообщение 72219)
Строки при сравнении с числом приводяться к числу '' приводиться к 0

Это понятно, меня больше интересует первые 4

Kolyaj 28.09.2010 19:01

Цитата:

Сообщение от alexeis
Почему

http://javascript.ru/ecma/part9#a-9

alexeis 28.09.2010 19:18

Если я правильно понимаю
null == "" => "null" == "" // false
undefined == 0 => NaN == 0 // false
undefined == "" => "undefined" == "" // false
null == 0 // false   ???

Почему null == 0 // false
ведь null ToNumber +0

with-love-from-siberia 28.09.2010 21:11

Цитата:

Почему null == 0 // false
ведь null ToNumber +0
Вот, по ссылке, полный ответ http://javascript.ru/ecma/part11#a-11.9.1. А здесь выдержки:
Цитата:

Сравнение x == y, где x и y являются значениями, возвращает true или false. Такое сравнение производится следующим образом:

1. Если Тип(x) отличается от Типа(y) - переход на шаг 14.
14. Если x равно null, а y равно undefined - вернуть true.
22. Вернуть false.


Часовой пояс GMT +3, время: 19:04.