为什么JavaScript中typeof Object的运算结果为function?
问题解答:为什么typeof Object返回function,它们是不是构造器?
首先你混淆了两个核心概念:内置数据类型 和 内置构造函数。
你代码里用到的Object、String本身就不是“内置数据类型”,而是JS标准内置的构造函数,本质是可执行的函数对象,所以typeof检测返回function是完全符合规范的结果。
验证逻辑
你可以通过以下代码确认它们的身份:
// 验证属于Function的实例 console.log(Object instanceof Function); // 输出 true console.log(String instanceof Function); // 输出 true // 作为构造器使用,创建对应类型的实例 const obj = new Object(); const str = new String('测试字符串'); console.log(typeof obj); // 输出 object console.log(typeof str); // 输出 object console.log(str instanceof String); // 输出 true
补充特性
这类内置构造函数也可以不加new直接调用,用来做强制类型转换:
// 把数值转为字符串类型 console.log(String(12345)); // 输出 '12345' // 把其他类型转为对象类型 console.log(Object('abc')); // 输出 String {'abc'} 对象
内容的提问来源于stack exchange,提问作者Louai Amrouche
相关产品推荐
相关产品推荐

