Я хотел бы найти путь к программному (т.е. путем написания кода) найти для того, что значения x
мы имеем выражение x == null
вычисляемой true
.Определение преобразования типов программно
ответ
невозможно (без предварительного знания, по крайней мере, основные правила JavaScript) иметь возможность программно определить все значения x
, для которых x == null
верно. Тем не менее, следующий должен показать шаблон, из которого эвристические может быть получено:
var v = [null, undefined, false, true, -1, 0, 1, "", " ", "0", {}, []]
for (var i = 0; i < v.length; i++) {
var x = v[i]
alert(x + " == null? " + (x == null))
}
(Данный тест действительно покрывают все времена, когда это было бы верно.)
Подобных тестов можно сделать для == false
, и т.д.
Счастливое кодирование.
См. Ответ Ray Toal для получения дополнительных предложений по тестовым значениям.
В отсутствии зная по крайней мере то о том, как выполняет JavaScript преобразования типов, как эти преобразования применяются через оператор ==
вы должны проверить все возможные значения от null
, а число возможных значений безгранично, поэтому то, что вы просите, не может быть сделано.
С немного знаний вы можете сломать мир из всех возможных выражений JavaScript в следующих категориях:
- неопределенных
- нуль
- истинный
- ложные
- отрицательные конечные числа
- posit ив конечным числа
- отрицательной бесконечности
- положительной бесконечность
- NaN
- пустой строка
- строки полной пробельной
- строки по крайней мере один не символ пробел
- пустой объект
- a объект с некоторыми свойствами
Проверьте значение представителя от каждого класса против null
и посмотрите, что вы получаете.
Я предполагаю, что вопрос был сформулирован так, что вы знаете точный раздел спецификации ECMA-262, который точно определяет семантику ==
. (Раздел 11.9.3 от the 5.1 spec)
- 1. XML-схема: определение типов типов
- 2. Определение явного преобразования для пользовательских типов в Swift
- 3. Определение типов данных
- 4. Swagger Определение примитивных типов
- 5. Определение типов с генериками
- 6. Определение типов в Haskell
- 7. Определение «типов» объектов
- 8. Basic haskell: Определение типов
- 9. Использование оператора преобразования типов
- 10. Проблема преобразования типов WMI
- 11. Преобразования родовых типов
- 12. Преобразования C типов указателей
- 13. преобразования типов для шаблонов
- 14. Преобразования типов данных SystemC
- 15. Неявные преобразования типов
- 16. R программирование преобразования типов
- 17. Преобразования быстрых типов
- 18. OData преобразования типов для числовых типов
- 19. Получите определение слова программно
- 20. Определение типов данных в цикле
- 21. Определение типов в машинописных текстах
- 22. Определение функции для нескольких типов
- 23. Индуктивное определение для семейства типов
- 24. Определение типов объектов в Qt
- 25. Определение типа быть Superset типов
- 26. Определение общих типов со строкой
- 27. Определение равенства для неизвестных типов
- 28. Определение типов данных в Python
- 29. Определение типов записей Ejabberd xml
- 30. Определение типов в декларации класса?
Теоретически это было бы невозможно. Диапазон значений, которые может принимать x, бесконечен.Вам нужно будет взглянуть на языковые спецификации или использовать процесс устранения, чтобы смотреть только на определенные ценности, которые являются хорошими кандидатами. – Anurag