Javascript是一种弱类型或者说动态语言。最新的ECMAScript标准定义了7种数据类型。

  • 6 种原始类型: Boolean, Null, Undefined, Number, String, Symbol(ES6新定义)
  • 还有Object.

这里引申出一个疑问:那function是不是一种数据类型?

在 js 中,执行如下代码会打印function

  1. typeof function(){} // function

这里需要指出的是,typeof只是一个运算符,其返回值不能作为 js 类型系统的依据。因此,按照specfunction并不算是一种数据类型。function比较特殊,spec没有把它单独拿出来作为一种数据类型,可能是因为它同样有所有object的特性吧。

新增第 8 种数据类型:BigInt

参考资料