1.2 弱类型语言
在JavaScript中,定义变量时不必声明其类型。但这并不意味着变量没有类型。一个变量可以属于几种类型之一,这取决于其包含的数据。 JavaScript中有3种原始类型:布尔型、数值型和字符串类型(不区分整数和浮点数是JavaScript与大多数其他主流语言的一个不同之处)。 此外,还有对象类型和包含可执行代码的函数类型,前者是一种复合数据类型(数组是一种特殊的对象,它包含着一批值的有序集合)。最后,还有空类型 (null)和未定义类型(undefined)这两种数据类型。原始数据类型按值传送,而其他数据类型则按引用传送。如果不了解这一点的话,你很可能会 碰到一些意想不到的问题。
与其他弱类型语言一样,JavaScript中的变量可以根据所赋的值改变类型。原始类型之间也可以进行类型转换。toString方法可以把数值 或布尔值转变为字符串。parseFloat和parseInt函数可以把字符串转变为数值。双重"非"操作可以把字符串或数值转变为布尔值:
![]() |
弱类型的变量带来了极大的灵活性。因为JavaScript会根据需要进行类型转换,所以一般说来,你不用为类型错误操心。