Приятные цветные карты, которые можно читать с высокой точностью

У JavaScript есть как строгие, так и сопоставления типов

null >= 0;, но (null==0)||(null>0) - false

null <= 0; истинно, но (null==0)||(null<0) - false

"" >= 0 также верно

Для реляционных абстрактных сравнений (& lt; =,> =) операнды сначала преобразуются в примитивы, а затем к тому же типу перед сравнением.

typeof null returns "object"

Когда тип - объект javascript пытается стягивать объект (т. е. null), предпринимаются следующие шаги ( ECMAScript 2015 ):

  1. Если PreferredType не был передан, пусть hint будет «по умолчанию».
  2. Иначе, если PreferredType - hint String, пусть hint будет «string».
  3. Else PreferredType - hint Число, пусть hint будет «числом».
  4. Пусть exoticToPrim будет GetMethod(input, @@toPrimitive).
  5. ReturnIfAbrupt(exoticToPrim).
  6. Если exoticToPrim не определено, то a) Пусть результат будет Call(exoticToPrim, input, «hint»). b) ReturnIfAbrupt(result). c) Если Type(result) не является объектом, верните результат. d) Выбросить исключение TypeError.
  7. Если hint является «значением по умолчанию», пусть hint будет «числом».
  8. Возврат OrdinaryToPrimitive(input,hint).

Допустимыми значениями для подсказки являются «по умолчанию», «число» и «строка». Объекты Date уникальны среди встроенных объектов ECMAScript в том смысле, что они рассматривают значение по умолчанию как эквивалентное «string». Все остальные встроенные объекты ECMAScript трактуют «по умолчанию» как эквивалентные «числу». ( ECMAScript 20.3.4.45 )

Итак, я думаю, null преобразуется в 0.

1
задан denis 14 March 2019 в 09:28
поделиться