ECMAScript中有5种基本数据类型,分别是:Undefined, Null, Boolean, Number和String,还有一种复杂数据类型Object,Object本质上是由一组无序的名值对组成的。(这里就不细细讲述了)
typeof操作符
typeof操作符是负责检测给定变量的数据类型,下面是几个使用typeof操作符的例子
这说明typeof操作符可以是变量,可以是数值字面量。注意,typeof是一个操作符而不是一个函数,因此例子中的圆括号尽管可以使用,但不是必须的。
调用typeof null会返回Object,因为特殊值null被认为是一个空的对象引用。
- Undefined类型
Undefined类型 只有一个值,即特殊的uhdefined. 在使用var 声明但未对其加以初始化时,这个变量的值就是undefined(默认获得的)
var message;
alert(message==undefined); //true
但是,包含undefined值的变量与尚未定义的变量还是不一样的。
var message; //这个变量声明之后默认取得了undefined值
//var age; //该变量未声明
alert(message); //undefined
alert(age); //报错
- Null类型
Null类型是第二个只有一个值得数据类型,这个值就是null 。从逻辑角度看,null值便是一个空对象指针,所以在用typeof操作符检测时会返回object
var book=null;
alert(typeof book); //object
注意,如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。这样的话,只要直接检查null值就可以知道相应的变量是否已经保存了一个对象的引用。
-
Boolean类型
Boolean类型只有两个字面值:true和false,这两个值是区分大小写的,也就是说,True和False都不是Boolean值,只是标识符。
在ECMAScript中要将一个值转换为一个Boolean值,可以使用转型函数Boolean()
-
Number类型
最基本的数值字面量格式是十进制整数,十进制整数可以向下面那样直接在代码中输入
var intNum=55;
除了十进制表示外,还可以通过八进制和十六进制来表示。其中,八进制字面值得第一位必须是0,然后是八进制数字序列(0~7)。如果后接的字面值超出范围,则前面的导零失效,后面的值将被当做十进制数值解析。
var a=065; //八进制的53
var b=085; //85
var c=08; //8
alert(a);
alert(b);
alert(c);
八进制字面量在严格模式下是无效的,会导致支持该模式的JavaScript引擎抛出错误。
十六进制字面值的前两位必须是0x,后跟任何十六进制数字(0-9及A-F)。字母可以大小写。
var a=0xA;
var b=0x1f;
console.log(a);//十六进制的10
console.log(b);//十六进制31
在进行算术计算时,所有以八进制和十六进制表示的数值最终会被转换成十进制数值。
- 浮点数值
浮点数值就是指该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字。虽然小数点前面可以没有整数但不推荐。
var floatNum1=1.2;
var floatNum2=0.2;
var floatNum3=.2;
console.log(floatNum1);//1.2
console.log(floatNum2);<