- js内置类型
 js中有七中内置的数据类型,其中有六种基本数据类型,一种复合数据类型.- 基本数据类型- 空值(null)
- 为定义(undefined)
- 布尔值(boolean)
- 数字(number)
- 字符串(string)
- 符号(symbol)
 
- 复合数据类型- 对象(object)
 
 
- 基本数据类型
- 类型检测 
 在js中我们可以使用typeof运算符来查看值的类型,它返回的是类型的字符串值。在js中的变量是没有类型的,只有值才有。变量是可以随时持有任何类型的值,在对变量执行typeof操作时,得到的结果并不是该变量的类型,而是该变量持有的值的类型,因为在js中的变量没有类型。- 1 
 2
 3
 4
 5
 6
 7- typeof undefined // "undefined" 
 typeof true // "boolean"
 typeof 42 // "number"
 typeof "42" // "string"
 typeof {a:1} // "object"
 typeof Symbol() // "Symbol"
 typeof null // "object"- ⚠️注意:js中对null的typeof判断是存在bug的。null的typeof正确的返回结果应该是null.这个是js产生的以恶搞由来已久的bug.对null的类型进行正确的检测可以使用以下的方式 - 1 
 2
 3- function isNull(param){ 
 return !param && typeof param === 'object'
 }- 函数
 js中的函数是object的一个”子类型”。具体的来说就是函数是一个”可调用对象“,其内部存在一个属性[[call]],该属性使得函数可以被调用。由于函数是object的子类型,所以函数可以拥有属性。
 
- 函数
- undefined和undeclared 
 已在作用域中声明但还没有赋值的变量是undefined。相反,还没有在作用域中声明过的变量是undeclared。- 1 
 2
 3- var a; 
 a; // undefined
 b; // b is not defined- typeof在处理undeclared的变量时,是将其处理为undefined。这是一个特殊的安全防范机制 
js类型
Last updated:
