typeof
— это не функция, а оператор, тот факт, что вы можете вызвать его с помощью круглых скобок, не делает его функцией, этот код предназначен только для удобства. Вызывая его таким образом, вы просто заключаете операнд, который хотите проверить, в круглые скобки, превращая его в выражение. Это похоже на вызов методов примитивных типов (1).toString()
.
"Эти объекты-оболочки, String, Number, BigInt, Boolean и Symbol, будут оцениваться как "object"
при передаче в функцию typeof
".
Это утверждение не совсем верно. См. примеры ниже:
1. var s = "hello"; typeof s; /// -> "string" /// Wraps the string literal into a String wrapper typeof String(s); /// -> "string" 2. /// Creates a new String object with the value var ns = new String("hello"); /// only now we get the object type typeof ns; /// -> "object"