在JavaScript中,
typeof 42 === 'number' //true
评估为true。但..
typeof Number === 'number' //false
评估为假。和..
typeof 'number' === 'number' //false
也评估为false。
不应该比较2或3评估为真吗?
答案 0 :(得分:4)
不,Number
,String
和Boolean
都是对象(和函数)。应用于其中任何一个的typeof
都会返回值"function"
。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean
值'number'
是一个字符串,因此其类型为'string'
。
答案 1 :(得分:1)
Number
是一个函数,可用于将本机值包装到Number
对象中。
Number
也是Number
类型的构造函数,如果与new
一起使用,例如
new Number(42)
使用Number()构造函数创建Number对象。
所以typeof Number
实际上是"function"
。
另一方面,'number'
是字符串,因此typeof 'number'
为"string"