ECMAScript:了解下ECMAScript 原始类型有哪些?
ECMAScript有5种原始类型(primitive type),即Undefined、Null、Boolean、Number和String。
ECMA-262 把术语类型(type)定义为值的一个集合,每种原始类型定义了它包含的值的范围及其字面量表示形式。
ECMAScript 提供了 typeof 运算符来判断一个值是否在某种类型的范围内。可以用这种运算符判断一个值是否表示一种原始类型:如果它是原始类型,还可以判断它表示哪种原始类型。
“undefined” ------->如果这个值未定义。
"null’---------->如果这个值是布尔值。
“string” -------->如果这个值是字符串。
“number”------->如果这个值是数值
“object”--------->如果这个值是对象或者null。
“function”------->如果这个值是函数。
1、Undefined类型
Undefined只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化,这个值就是undefined。
如(推荐):
var message; alert(message == undefined);
等价于:
var message = undefined; alert(message == undefined);
一般不存在需要显示地把一个变量设置为undefined。
字面值undefined的主要目的是用于比较。
ECMA-262第3版本之前没有定义undefined。
第3版引入是为了正式区分空对象和未初始化的变量。
包含undefined和未定义的变量还是不一样的。如下:
var msg; //var age; alert(msg);//undefined alert(age);//尚未声明的变量age
2、Null类型
只有一个值的数据类型,即null。从逻辑上null是一个空对象指针,这正是为什么在使用typeof操作符的结果为"object"的原因。
var car = null; alert(typeof(car));//"object"
如果定义的变量是用来保存对象,最好将变量初始化为null。这样只要检查null值就可以知道相应的变量是否保存了一个对象的引用。
if(car != null){ //对car进行操作 }
undefined是派生自null值的。因此ECMA-262规定它们的相等性测试为true。
alert(null == undefined);//true alert(null === undefined);//false
here,位于null和undefined之间的相等操作符(==)h总是返回true。
but,这个操作符出于比较会修改操作数。
它们的用途完全不同。
3、Boolean类型
Boolean类型是ECMAScript中使用最多的一种数据类型,它的值有两个,真(true)或假(false)。
注意
true和false与数字值不是一回事。
true不一定为1,false也不一定为0 。
var found = true; var lost = false;
Boolean类型的字面值true和false是区分大小写的。that is to say,True 和False不是Boolean类型的值,而死标识符。
虽然Boolean值只有两个,但是所有的数据类型都有与这两个Boolean值等价的值。
要讲一个值转换为其对应的Boolean值,可以调用转型函数Boolean(),如下所示:
var msg = "you are my friend"; var megsAsBoolean = Boolean(msg);
4、Number类型
这种数据类型使用IEEE754格式来表示整数和浮点数(浮点数值再某些语言中也被称为双精度数值)。为支持各种数值类型,ECMA-262定义了不同的数值字面量格式。
最基本的数值字面量是十进制数整数,如下写法:
var intNum = 55;
还有八进制和十六进制。
八进制的第一位必须是0,然后八进制的序列为0~7,。
超出范围会怎么样尼???
如果字面量中的数值超出了范围,就会忽略前导0,后面的数值被当做十进制解析。
var octalNum1 = 070;//八进制56 var octalNum2 = 079;//无效的八进制数值----->解析为79 var octalNum = 08;//无效的八进制,-----解析为8
网友评论文明上网理性发言 已有0人参与
发表评论: