您的位置:首页 > Web前端 > JavaScript

读书笔记 JavaScript高级程序设计 第三章 基本概念-数据类型

2016-02-01 22:43 781 查看
ECMAScript中有5中简单的数据类型:Null,Undefined,Boolean,Number,String

还有一种复杂数据类型:Object。Object本质上是一组无序的名值对组成的。*ECMAscript不支持任何创建自定义类型的机制。也就是说:所有的数据类型最终都是上述的6中数据类型之一。*

数据类型

typeof操作符

typeof是用来检测数据属于哪种数据类型的操作符。其结果有6种可能的结果:

1. undefined

2. boolean

3. string

4. object

5. number

6. function

注意

typeof操作符的操作数可以是变量也可以是数值字面量。有的时候,操作符会返回一些令人疑惑但技术上正确的值。比如typeof null会返回object。因为特殊值null被认为是一个空的对象引用。

严格来说,function在ECMAScript中是对象,不是一种数据类型。然而,函数也确实有一些特殊的属性,因此通过typeof操作符来区分函数和其他对象时有必要的。

Undefined类型

Undefined类型只有一个值,即特殊值undefined。在使用var声明变量但未对变量加以初始化时,这个变量的值就是undefined。对于尚未声明过的变量,只能执行一项操作,即使用typeof操作符检测其数据类型。

Null类型

Null类型是第二个只有一个值的数据类型,这个类型的值是null。从逻辑上讲,null值表示一个空指针。而这也是为什么使用typeof操作符检测null值时返回object的原因。

如果定义的变量准备在将来用于保存对象,那么最好将该变量初始值初始化为null而不是其他值。

实际上,undefined值是派生自null值。alert(null == undefined) // true

Boolean类型

Boolean类型只有2个字面值,true和false。

可以对任何数据类型的值调用Boolean()函数,而且总会返回一个Boolean类型的值。转换规则如下:

这些转换规则对于理解流控制语句(if语句)自动执行相应的Boolean转换非常重要。

Number类型

最基本的数值字面量是十进制整数。除此之外还可通过8进制好16进制的字面量来表示。

var num1 = 070;//八进制56

var num2 = 079;//无效的八进制数,会被解析为十进制的79

var num3 = 08;//无效的八进制数,会被解析为十进制的8;

八进制字面量在严格模式下是无效的,会导致支持该模式的JavaScript引擎抛出错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: