Во многих сторонних библиотеках и блогах / рекомендациях по передовой практике и т. д. часто встречается такой синтаксис:
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 не возвращает строковый литерал? И даже если есть какой-то второстепенный случай, почему используется дополнительная проверка типа для объекта, строки, функции и т. Д.