购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.5 JavaScript数据类型

数据类型在任何计算机语言中都比较重要,JavaScript语言也是面向对象的。

2.5.1 数据类型

JavaScript数据类型可以分为数值类型、布尔类型、字符串类型、对象类型和数组类型等。

1.数值类型

数值类型包括整数和浮点数,整数可以是十进制、十六进制和八进制数,十进制数由一串数字序列组成,它的第一个数字不能为0。如果第一个数字为0,则表示它是一个八进制数。如果第一个数字为0x,则表示它是一个十六进制数。

浮点数必须包含一个数字、一个小数点或“e”(或“E”)。浮点数例子如下:3.1415、-3.1E12、0.1e12和2E-12。

2.布尔类型

布尔类型有两种值:true和false。

3.字符串类型

字符串是若干封装在双引号("")或单引号('')内的字符。字符串例子如下:

    "fish"
    'fish'
    "5467"
    "a line"

4.对象类型

用new生成一个新的对象,例如:

    var currentDay=new Date()

5.数组类型

数组类型Array也是一个对象,可以通过var arr=new Array(3)语句创建,其中3是数组的长度,可以通过arr.length属性取得数组的长度。

2.5.2 数据类型字面量

数据类型字面量(literals)是在程序中使用的字符表示数据的方式。例如常见的数据类型字面量:

    12                                  //12整数
    1.2                                 //1.2浮点数
    "hello world"            //一个内容为hello world的字符串
    true                 //表示"真"布尔类型值
    false                //表示"假"布尔类型值
    {height:10,width:20}        //表示一个对象
    [1,2,3,4,5]            //表示数组对象
    null                                //表示不存在的对象

2.5.3 数据类型转换

JavaScript提供了类型转换函数,这些转换包括转换成字符串、转换成数字和强制类型转换。

1.转换成字符串

可以将布尔类型和数值类型转换为字符串类型,布尔类型和数值类型它们都由toString()函数实现转换。实例代码如下:

    var found=false;
    console.log(found.toString());            //输出false
    
    var num1=10;
    var num2=10.0;
    console.log(num1.toString());             //输出 "10"
    console.log(num2.toString());             //输出 "10"
    
    console.log(num2.toString(2));            //输出二进制形式"1010"
    console.log(num2.toString(8));            //输出八进制形式"12"        
    console.log(num2.toString(16));        //输出十六进制形式"A"

提示 在面向对象分析和设计过程中,toString()应该叫作“方法”,而不是“函数”,方法要有主体,而函数没有主体。但是为了尊重JavaScript,本书还是把类似toString()的方法称为函数。

2.转换成数字

把非数字的原始值转换成数字的函数:parseInt()和parseFloat()。实例代码如下:

    var num3=parseInt("12345red");            //返回 12345
    var num4=parseInt("0xA");                 //返回 10
    var num5=parseInt("56.9");                //返回 56
    var num6=parseInt("red");                 //返回 NaN          ①
    
    var num6=parseInt("10", 2);               //返回二进制数2     ②
    var num7=parseInt("10", 8);               //返回八进制数8
    var num8=parseInt("10", 10);              //返回十进制数10
    var num9=parseInt("AF", 16);              //返回十六进制数175
    var num10=parseFloat("12345red");         //返回 12345
    
    var num11=parseFloat("0xA");              //返回 NaN          ③
    var num12=parseFloat("11.2");             //返回 11.2
    var num13=parseFloat("11.22.33");         //返回 11.22         ④
    var num14=parseFloat("0102");             //返回 102
    var num15=parseFloat("red");              //返回NaN           ⑤

上述代码第①、③和⑤行返回NaN表示无法转换有效的数值。第②行代码的parseInt函数有两个参数,第二个参数是基数,基数表示数值的进制。

3.强制类型转换

还可以使用强制类型转换来处理转换值的类型。JavaScript提供了三种强制类型转换函数:

(1)Boolean(value)——把给定的值转换成布尔型。

(2)Number(value)——把给定的值转换成数值。

(3)String(value)——把给定的值转换成字符串。

使用Boolean函数的实例代码如下:

    var b1=Boolean("");                //false - 空字符串    ①
    var b1=Boolean("hello");           //true - 非空字符串   ②
    var b1=Boolean(50);                //true - 非零数字     ③
    var b1=Boolean(null);              //false - null        ④
    var b1=Boolean(0);                //false - 零          ⑤
    var b1=Boolean({name: 'tony'});    //true - 对象         ⑥

Boolean函数可以将任何类型转换为布尔类型,其中第①行的""值、第④行的null值和第⑤行的0值转换后为false,第②行的"hello"值、第③行的50值和第⑥行的对象值转换后为true。

使用Number函数的实例代码如下:

    var n1=Number(false);             //0
    var n1=Number(true);              //1
    var n1=Number(undefined);         //NaN            ①
    var n1=Number(null);              //0              ②
    var n1=Number("1.2");             //1.2
    var n1=Number("12");              //12
    var n1=Number("1.2.3");           //NaN            ③
    var n1=Number({name: 'tony'});    //NaN            ④
    var n1=Number(50);                //50

Number函数可以将任何类型转换为数值类型,其中第①行的undefined值、第③行的"1.2.3"值和第④行的对象值转换后为NaN,第②行的null值转换后为0。

提示 null表示无值,而undefined表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象。

使用String函数的实例代码如下:

    var s1=String(null);                  //"null"
    var s1=String({name: 'tony'});        //"[object Object]"

String函数可以将任何类型转换为字符串类型,其中对象情况比较复杂。 m6fl39b/YpKOebDc4h7ZhQBB2xhiQFA+5+kybmacM7ot07wAGsi6UygvxrlkXe5/

点击中间区域
呼出菜单
上一章
目录
下一章
×