为什么使用typeof 查看类型function会是独立的类型。

使用typeof查看类型时会多出一个function类型,

而JS实际中只有5个基本类型与一个复杂类型(对象)。

js定义类型:

1.number
2.string
3.boolean
4.undefined
5.null (也算对象)
6.object

typeof:

1.number
2.string
3.boolean
4.undefined
5.object

6.function
阅读 5.7k
3 个回答

function本质上也是一个对象,但是function对象与普通对象相比,其内部有一个[[Call]]方法,用来表示这个对象是可调用的,typeof操作符在判断Object时,如果内部实现了[[Call]]方法,就返回function。
附上typeof操作符返回判断图:
图片描述

总得有个正常方法来判断一个值是不是callable (正常的意思是指不算 try { foo(); } catch )

function实际上是object的一个“子类型”。具体来说,函数是“可调用对象”。 --你不知道的JavaScript中卷

推荐问题