- это эта блок-схема правильно?
Нет. Помимо того, что он выглядит ужасно, он вводит в заблуждение и частично ошибается.
Я что-то не хватает?
Да. Первый шаг: «попробуйте преобразовать A и B в логический, строка или номер» неверно - это не первый шаг в equality comparison algorithm. Кроме того, когда нужно преобразовать какую из переменных в какой тип?
Затем следующим шагом должно быть различие типов, а не повторное задание одинаковых значений определенного типа.
«Последний» шаг «Могут ли они (типы) быть принуждены к любой из последних 5 ситуаций? -> Типы принуждения« не хватает деталей. Все детали. Что является наиболее важной частью сравнения небрежного равенства:
- Какие типы могут быть принудительно?
- Какие типы будут принуждаться к чему?
- Как действует принуждение значений?
И нет, после принуждения алгоритм в значительной степени начинается в начале, а не с вопросом о строках.
Также я понимаю, что оператор идентичности (===) будет работать практически так же, но без попытки конвертировать A и B в логическое число или строку на первом шаге.
Это первый шаг не является очевидным в самом алгоритме, так Нет, в самом деле, ===
работает так же , за исключением последнего шага, который принуждает значения в другие типы - вместо false
, возвращается.
Редактировать: Ваша вторая диаграмма является точной (правильной), хотя она по-прежнему содержит некоторые нечетные решения по размещению.
Хорошая работа с диаграммой! –
Нет «оператора идентичности», однако существует строгий оператор равенства (равенства). Если ваш вопрос: «* делает модель блок-схемы абстрактным алгоритмом сравнения, который используется для' == 'operator *», ответ «Нет». Лучшее место для начала - спецификация: [* Алгоритм сравнения абстрактного равенства *] (http://ecma-international.org/ecma-262/5.1/#sec-11.9.3). – RobG
Вы можете сравнить статью [* MSDN *] (http://msdn.microsoft.com/en-us/library/ie/ky6fyhws%28v=vs.94%29.aspx) с эквивалентом на [* MDN * ] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators). – RobG