mianhuantang 2011-09-07
虽然变量定义都是var;但javascript还是拥有数据类型的。
JavaScript 有六种数据类型。主要的类型有 number、string、object 以及 Boolean 类型,其他两种类型为 null 和 undefined。
l String 数据类型
字符串是用单引号或双引号来说明的。(使用单引号来输入包含引号的字符串。)一个字符串也是 JavaScript 中的一个对象,不过是个特殊情形,有专门的属性。下面是字符串的示例:
"Thecowjumpedoverthemoon."'"Avast,yelubbers!"roaredthetechnician.'"42"
字符串可以包括零个或多个统一编码的字符。如果包含零个字符,则成为零长度字符串 ("")。l 数值数据类型
JavaScript支持整数和浮点数。整数可以为正数、0或者负数;浮点数可以包含小数点、也可以包含一个"e"(大小写均可,在科学记数法中表示“10的幂”)、或者同时包含这两项。这些数遵循数值表示的IEEE754标准。最后,还有一些特殊的数值:
NaN,即不是一个数
正无穷
负无穷
正数0
负数0
整数可以以10(十进制)、8(八进制)和16(十六进制)作为基数来表示。
八进制整数用一个前导"0"指明,并可以包含从0到7的数字。如果某个数字有一个前导"0"但是又包含数字"8"和/或"9",则该数字是一个十进制数。如果一个应该为八进制的数中包含了字母"e"(或"E")将会产生一个错误。
十六进制("hex")整数用前导"0x"指明(其中的"X"大小写均可),并且可以包含从0到9的数字以及从A到F的字符(字母的大小写均可)。字母"e"在十六进制记数法中是一个允许的数字,但并不是表示这是一个指数。字母A到F是作为单个的数字,用来表示以10为基数的10到15这些数。也就是说,0xF等于15,而0x10就等于16。
八进制数和十六进制数可以是负数,但不能是小数。一个以单个"0"开头并包含一个小数点的数是一个十进制的浮点数;如果一个数以"0x"或"00"开头并包含一个小数点,则该小数点右边的任何数都将被忽略。
一些示例:
.0001, 0.0001, 1e-4, 1.0e-4 // 四个浮点数,它们互等。 3.45e2 // 一个浮点数,等于 345。 42 // 一个整数。 0377 // 一个八进制整数,等于255。 00.0001 // 由于八进制数不能有小数部分,因此这个数等于 0。 0378 // 一个整数,等于 378。 0Xff // 一个十六进制整数,等于 255。 0x37CF // 一个十六进制整数,等于 14287。 0x3e7 // 一个十六进制整数,等于 999。 0x3.45e2 // 由于十六进制数不能有小数部分,因此这个数等于 3。l Boolean 类型
可能的Boolean值有true和false。这是两个特殊值,不能用作1和0。
注意 在比较中,任何等于 0 的表达式被视为 false,而任何不等于 0 的语句都被视为 true。l Undefined 数据类型 一个为 undefined 的值就是指在变量被创建后,但未给该变量赋值以前所具有的值。
l Null 数据类型 null 值就是没有任何值,什么也不表示。
l Object 类型
除上述类型外,其他类型全部都做object类型处理。包括数组,日期,function,json对象等.
数据类型的转换;其中parseInt和parseFloat是很容易用错的2个方法。
l 基本数据类型转换的三种方法:
1. 转换为字符型:String(); 例:String(678)的结果为"678"
2. 转换为数值型:Number(); 如果不能转换成数字则返回NaN。例:Number("678")的结果为678;而Number("6a")返回NaN
3. 转换为布尔型:Boolean(); 例:Boolean("aaa")的结果为true
l 从一个值中提取另一种类型的值的方法:
1. 提取字符串中的整数:parseInt(); 例:parseInt("123zhang")的结果为123
2. 提取字符串中的浮点数:parseFloat(); 例:parseFloat("0.55zhang")的结果为0.55
3. 执行用字符串表示的一段javascript代码:eval(); 例:zhang=eval("1+1")的结果zhang=2