Javascript的数据类型有哪些?最近的几个面试电话都问到了这个问题,但追问引用类型就懵逼了,故理解整理答案如下。
JavaScript的数据类型有七种:null、undefined、Boolean、String、Number、Object、symbol,其中symbol是ES6出的数据类型,这里暂且不做讨论,前六种都是ES5中的。其中上述前五种是基本类型(又称原始类型、值类型)。这里就不细讲基本类型,直接到MDN上看就好了。
重头戏,引用类型到底有哪些?说实话,电话面结束后,我在网上找答案也是找得一脸懵逼,要不各种说法,要不含糊其辞,MDN上也没找着。在绝望处突然想起红宝书(JavaScript高级程序设计),答案在那里静静地躺着。
红宝书对于引用类型的定义:引用类型的值(对象)是引用类型的一个实例。在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。
上图为红宝书目录整理的导图,下面是我在看相关的博文时整理出来的一些知识要点。
- 值类型,可操作保存在变量中的实际的值
- 声明string变量时,也可以用单引号也可以用双引号
- 如果函数或方法要返回的是对象,当找不到对象时,返回的通常是null
- 在Boolean表达式中,所有对象都会被自动转换为true
- 声明Number类型时,极大或极小的数值可以使用科学计数法表示(用E或e)
- 所有程序设计语言最重要的特征之一就是具有进行类型转换的能力
- Undefined类型只有一个值,当声明的变量未初始化时,该变量的默认值是undefined
- 当复制保存着对象的某个变量时,操作的是对象的引用,但是在为对象添加属性时,
操作的是实际的对象 - JavaScript拥有动态类型,这意味着相同的变量可用作不同的类型,即可以var一个变量为字符串,
也可以var一个变量为数值 - ECMAScript提供了两种把非数字的原始值转换为数字的方法,parseInt() parseFloat(),
对string调用这些方法,他们才能正确运行