数据类型在不论什么的计算机语言中都比較重要的,JavaScript语言也是面向对象的。

数据类型

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属性取得数组的长度。



数据类型字面量

数据类型字面量(Literals)是在程序中使用的字符表示数据的方式。

比如常见的型字面量: 

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




数据类型转换

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 提供了三种强制类型转换函数例如以下:

Boolean(value),把给定的值转换成布尔型。
Number(value)。把给定的值转换成数值。
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函数能够将转换不论什么类型为字符串类型。当中对象情况比較复杂。