На протяжении многих сторонних библиотек и передовой практики блог/рекомендации и т.д. ... это часто можно увидеть синтаксис вроде этого:В чем причина использования === вместо == с typeof в Javascript?
typeof x === 'object' (instead of typeof x == 'object')
typeof y === 'string' (instead of typeof x == 'string')
typeof z === 'function' (instead of typeof x == 'function')
Если оператор TypeOf уже возвращает строку, что необходимо ввести проверку возвращаемое значение? Если typeof (typeof (x)) всегда строка, независимо от того, что на самом деле x, то == должно быть достаточно, и === не нужно.
При каких обстоятельствах будет typeof не верните строковый литерал? И даже если есть какой-то случайный случай, почему дополнительная проверка типа используется для объекта, строки, функции и т. Д.
Нет никаких обстоятельств. Большинство людей просто смертельно опасаются литья типов по какой-либо причине (* cough * Crockford) – MooGoo
@MooGoo Когда правила кастования типов в JavaScript настолько произвольны, вероятно, хорошо не доверять. – Skilldrick
В этом случае это действительно литье типа? Оператор typeof встроен, а не определен пользователем. Итак, каков реальный риск? –