Алгоритм свободного равенства в JavascriptJavascript

Форум по Javascript
Ответить
Anonymous
 Алгоритм свободного равенства в Javascript

Сообщение Anonymous »

Поскольку NaN не равно любому другому значению, в том числе другому NaN, почему алгоритм свободного равенства в спецификации Javascript не проверяет, является ли какой-либо из операндов первым NaN? Если какой-либо из операндов имеет значение NaN, результат ложный, дополнительная обработка не требуется.
В спецификации Javascript приведен алгоритм ==:
  • Если SameType(x, y) истинно, то
    a. Верните IsStrictlyEqual(x, y).
  • Если x имеет значение NULL, а y не определено, верните true.
  • Если x не определено, а y имеет значение NULL. , верните true.
  • ПРИМЕЧАНИЕ. Этот шаг заменен в разделе B.3.6.2.
  • Если x — число, а y — строка , возвращаться ! IsLooselyEqual(x, ! ToNumber(y)).
  • Если x — строка, а y — число, верните ! IsLooselyEqual(! ToNumber(x), y).
  • Если x — это BigInt, а y — строка, то
    a. Пусть n равно StringToBigInt(y).
    b. Если n не определено, верните false.
    c. Возвращаться ! IsLooselyEqual(x, n).
  • Если x — это строка, а y — BigInt, верните ! IsLooselyEqual(y, x).
  • Если x — логическое значение, верните ! IsLooselyEqual(! ToNumber(x), y).
  • Если y — логическое значение, верните ! IsLooselyEqual(x, ! ToNumber(y)).
  • Если x — это строка, число, BigInt или символ, а y — объект, верните ! IsLooselyEqual(x, ? ToPrimitive(y)).
  • Если x — объект, а y — строка, число, BigInt или символ, верните ! IsLooselyEqual(? ToPrimitive(x), y).
  • Если x — это BigInt, а y — число, или если x — число, а y — BigInt, то
    а. Если x не конечно или y не конечно, верните false.
    b. Если ℝ(x) = ℝ(y), вернуть true; в противном случае верните false.
  • Верните false.
Согласно этому алгоритму, если x или y равно NaN, шаги 5, 6, 9, 10, 11, 12 будут стоить времени выполнения, и результат должен быть ложным.
Если первый шаг:
1.if x или y — NaN, верните false.
алгоритм может получить и вернуть этот результат немедленно.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -algorithm
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»