Javascript属于一种弱类型语言,定义变量时不需要指定类型,一个变量可以储存任何类型的值,但在运算时,JavaScript还是会把它转换成相应的数据类型。
Javascript中,数据存在着两种不同的储存方式,直接储存数据和间接储存数据,前者成为值类型数据;而后者通过储存数据的空间地址来间接保存数据,称为引用型数据。
三种基本数据类型:数值、字符串和布尔型。
数值型
Javascript数值不区分整数和浮点数,所遇到额数都能为浮点型数值来表示。除了基本的算术运算外,Javascript还提供了大量的算数函数,均包含在Math内置对象中。如:
1
2
3var a = 100;
var c = a.toString() //转换为字符串
alert(typeof(c));1
2
3var a = 100;
var c = a + "" //转换为字符串
alert(typeof(c)); //返回值为string类型
(推荐使用可以使用firebug的版本的firefox浏览器,在firebug的控制台中可以进行代码的运行查看,或者在开发者工具里的代码草稿纸中直接运行或者在HTML代码中用script标签,在网页中查看)。
字符串类型
字符串由Unicode字符、数字、标点符号等组成的字符序列,字符串出必须使用单引号或双引号包括。 如:
1 | var str = "abcdefg" //简单字符串 |
从结果中也可以看出JavaScript
拥有动态类型。这意味着相同的变量可用作不同的类型:
使用parseInt()和parseFloat()方法可以将字符串变为整数。 如:
1
2
3var str = "123.30";
var a = parseInt(str); //返回值为123
var b = parseFloat(str); //返回值为123.31
2
3var str = "123.30";
var a = str * 1;
alert(typof(a)) //返回nunmber类型
布尔型
布尔类型仅包括两个值true和false。分别表示逻辑的真和假。布尔值多用在逻辑运算,比较运算中的条件语句或运算符的条件而使用。
使用两个!!
就可以将任何值转为布尔型数据,如:
1 | var a = 100; |
任何非空字符转换为布尔值为true,空格转换后为false,如将布尔值转换为字符串,则true为'true',false为'false'。
注意:以下为一组不同类型的假值: 1
2
3
4
5
61. 0 //Number
2. NaN //Number
3. ’’ //String
4. false //boolean
5. null //Object
6. undefined //Undefined
两个特殊值
除了上面的简单的三个数据类型,js中还有两个特殊的数据类型的值:null和undefined。
null是Null类型的值,且Null类型只有一个值,即null,表示空值。当对象为空,挥着变量没有引用任何对象,其返回值就为null。当一个变量的值为null时,那么他的值就不是有效的对象、数组、数值、字符串和布尔型等。如果用以下代码测试其类型:
1 | var a = null; |
会得到这个结果:
是一种特殊的对象。
undefined表示未定义的值,当变量未初始化时,会默认他的值为undefined。它区别任何对象、数组、数值、字符串和布尔型,使用typeof检测返回值为undefined。
三个引用型数据
引用型数据包括数组(Array)、对象(Object)和函数(Function)等,详细请移步下一篇博客~~