Javascript类型的介绍

在很多人的眼中,Javascript这中动态语言,是没有类型(type)的,但事实上对于JS来说掌握它的类型是非常重要的,对JS来说类型是值的内部特征,它定义了值的行为,以使其区别于其他值。

1. 内置类型

JS有七种内置的类型,分别是:

  • Number
  • String
  • Boolean
  • Symbol
  • Object
  • Null
  • Undefined

这七种类型除Object外都是基本类型。
当使用typeof操作符来查看值的类型时,返回的是对应类型的字符串。例如:typeof 1 === "number" //true
但是需要注意的是,Null类型不在此列,当你使用typeof查看null的类型时,返回的会是“object”,typeof null === "object" // true JS的这个bug由来已久,至今没有修复。所以,检测一个值是不是“object”类型时,需要使用复合条件:

var a; 
!a && typeof a === "true" 

只有同时满足这两个条件,a才是一个“object”类型的值。

2. 变量和值的类型

首先,对于Javascript这种“动态语言”,变量是没有类型的,语言引擎不要求变量总是持有与其初始值同类型的值,变量可以随时持任何类型的值,换句话说就是Javascript不做“类型强制”。
那么所谓的变量的类型指的是变量所持有的值的类型。

2.1 undefined 和 not defined

在这里还需要注意一点的是undefined和 is not defined的区别:

当调用一个已经申明,但未赋值的变量时,它是undefined;
当调用一个未被申明的变量时,引擎会报错,is not defined;

但是,bug又来了,当你使用typeof来查看一个未被赋值的变量和一个未被申明的变量时,它返回的结果都是 undefined。

 var a;
typeof a === "undefined"//true
typeof b === "undefined"//true

以上,就是对于Javascript类型的介绍。

你可能感兴趣的:(Javascript类型的介绍)