“无价值”在“typeof”算子的解释中意味着什么?

时间:2018-01-28 20:52:49

标签: javascript typeof

来自MDN

  

typeof运算符返回一个字符串,指示未评估操作数的类型。

请问,在这个描述中,“未评估”是什么意思?

因为调用typeof func()函数(这是合理的,但与上述描述有点不一致):

function func() {
  console.log('func is called');
  return 0;
}

console.log(typeof func());

2 个答案:

答案 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);