分类: Java
2009-08-14 17:25:10
二、JavaScript数据类型
1、数据类型
undefined : 未定义
空值:由关键字null代表(null是空对象----- 没有任何属性和方法)
number : 数字(其中包括整型数和浮点型数)
boolean : 布尔值(即逻辑值,true或flase)
string : 字符串(由单个或多个文本字符组成)
function: 函数
object : 对象
2、undefined类型
(1)在IE5及以下版本中
除了直接赋值和typeof()之外,其它任何对undefined的操作都将导致异常。如果需要知道一个变量是否是undefined,只能采用typeof()的方法:
(2)在IE5.5及以上版本中,undefined是一个已实现的系统保留字
因此可以用undefined来比较和运算。检测一个值是否是undefined的更简单方法可以是:
3、number类型
(1)两个常值定义
JavaScript中总是处理浮点数,因此它没有象Delphi中的MaxInt这样的常量,反而是有这
样两个常值定义:
l Number.MAX_VALUE : 返回 JScript 能表达的最大的数。约等于 1.79E+308。
l Number.MIN_VALUE : 返回 JScript 最接近0的数。约等于 2.22E-308。
(2)与number类型相关的全局方法
l isFinite() : 如果值是NaN/正无穷/负无穷,返回false,否则返回true。
l parseFloat() : 从字符串(的前缀部分)取一个浮点数。不成功则返回NaN。
4、boolean类型
5、string类型
小知识
(1)js的类型检查
其实会js的人都知道,js是宽松类型的动态语言,我们可以不用显式的定义变量的数据类型。但实际上,我们使用已定义的变量时,总是会适时的检查它的类型是否符合我们的需要,以做出不同的行为。
js本身提供了typeof()函数来检查变量的类型,但它的返回值不外乎6种:
l "number,"
l "string,"
l "boolean,"
l "object,"
l "function,"
l "undefined."
下面是一些测试代码的输出结果
var a = new Date();
print(typeof(a));
输出: object
var b;
print(typeof(b));
输出: undefined
print(typeof(1.12));
输出: number
print(typeof(88));
输出: number
print(typeof(a==b));
输出: boolean
print(typeof("hello"));
输出: string
(2)检查变量是属于哪种具体的变量类型,而不仅仅是得到object这个结果
我们可以这样写代码:
var a = new Date();
print(a.constructor == Date)
输出: true
constructor是所有prototype对象所共有的属性。上面这种方式是通过比较此对象的构造函数是否与给定的对象相等来进行对象类型检查的,此种方式我们要事先知道可能的对象类型。所以如果要检查变量可能属于哪种对象类型,要采用if-else这样的语句结构:
if(a.constructor == Array)
print("a is Array");
else if(a.constructor == String)
print("a is String");
else if (a.constructor == Date)
print("a is Date");