来自MDN:
typeof运算符返回一个字符串,指示未评估操作数的类型。
请问,在这个描述中,“未评估”是什么意思?
因为调用typeof func()
函数(这是合理的,但与上述描述有点不一致):
function func() {
console.log('func is called');
return 0;
}
console.log(typeof func());
答案 0 :(得分:1)
这是一个极具误导性的术语。当然typeof
需要将其操作数计算为一个值来确定值的类型!
只有一个值得注意的例外,这可能是“未评估”所指的:typeof
不评估无法解析的引用。如果使用未在任何地方声明的标识符,则评估它通常会抛出异常(至少在严格模式下)。但是,typeof
只会告诉您它是"undefined"
。
答案 1 :(得分:0)
问题的第一部分:
typeof运算符返回一个字符串,指示未评估的操作数的类型。
未评估的操作数表示尚未检查其类型的值。
您正在函数返回的整数上调用typeof。所以,你得到一个数字,如下:
function func() {
console.log('func is called');
return 0;
}
console.log(typeof func());
要将该函数作为参数传递,您可以在console.log(typeof func);
上编写()
而没有括号func
。
注意:此功能未在此处调用
function func() {
console.log('func is called');
return 0;
}
console.log(typeof func);