Почему «undefined» == undefined неверно?

Оператор ==действительно забавен. Он обычно не ведет себятак, как предполагается.

Это привело меня к исследованию того, что именно происходит под верхушкой айсберга, и согласно MDNэто выглядит следующим образом:

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

(источник)

Итак, почему "undefined" == undefinedне оценивается как true?

Не следует ли undefinedпреобразовать в "undefined", а затем вернуть true в соответствии с этим описанием?

5
задан Community 23 May 2017 в 12:04
поделиться