js中有6种数据类型,包括五种基本数据类型(Number,String,Boolean,Undefined,Null),一种复杂数据类型(Object)。
1. Number
Number类型包含整数和浮点数两种值。
- 浮点数值
浮点数数值必须包含一个小数点,且小数点后面至少有一位数字。比如:
var num1=1.1;
var num2=0.1;
var num3=.2; //有效,但不推荐
对于那些极大或者极小的数字,可以用e表示法表示的浮点数表示。比如:
var floatNum=2.125e7;//等于21250000
2)数值范围
由于内存的限制,ECMAScript并不能保存所有的数据。而在大多数浏览器中,能够保存的最小数的值为5e-324,能够表示的最大的数为1.7976931348623157e+308。如果超过这个范围的数为负数,则转换为-Infinity,反之转换为Infinity。
3)NaN
NaN,即非数值,这个用来表示一个本来要返回数值的却未能返回数值的情况。我们可以用isNaN(),方法来判断这个数是否“不是数值”。注意:NaN与任何值都不相等,包括他自身。
isNaN("hello") ; //true
isNaN(123) ; //false
4)数值转换
有三个函数可以把非数值转换为数值:Number() ,parseInt() , parseFloat().
第一个可用于任何数据类型。而后两个专门用于把字符串转换为数值。
2. String
用于表示由零个或者多个16位Unicode字符组成的字符序列。可由双引号(")或者单引号(')表示。比如:
var str1="hello";
var str2='world';
字符串有个特点是不可变的,也就是说字符串一旦创建,他们的值就不能改变。
3. Boolean
该类型只有两个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0。
虽然Boolean类型的字面值只有两个,但JavaScript中所有类型的值都有与这两个Boolean值等价的值。要将一个值转换为其对应的Boolean值,可以调用类型转换函数Boolean(),例如:
var message = 'Hello World';
var messageAsBoolean = Boolean(message); //true
在这个例子中,字符串message被转换成了一个Boolean值,该值被保存在messageAsBoolean变量中。可以对任何数据类型的值调用Boolean()函数,而且总会返回一个Boolean值。至于返回的这个值是true还是false,取决于要转换值的数据类型及其实际值。下表给出了各种数据类型及其对象的转换规则。
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空的字符串 | ""(空字符串) |
Number | 任何非0数值(包括无穷大) | 0和NAN |
Object | 任何对象 | null |
Undefined | 不适用 | undefined |
var message = 'Hello World';
if(message)
{
alert("Value is true");
}
运行这个示例,就会显示一个警告框,因为字符串message被自动转换成了对应的Boolean值(true)。由于存在这种自动执行的Boolean转换,因此确切地知道在流控制语句中使用的是什么变量至关重要。
4. Undefined
Undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。比如:
var message;
alert(message == undefined);//true
5. Null
Null类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个空对象指针,而这也正是使用typeof操作符检测null时会返回object的原因。
如果变量的定义是准备用来保存对象的,那么最好将该变量初始化为null。这样,我们直接判断是否为null,就可以确定他是否保存了对象。比如:
if(car != null){
//对car对象执行某些操作
}
实际上,undefined值是派生自null值的,因此规定
console.log(undefined == null); //true
6. Object
对象就是一组数据和功能的集合。
该类型实例化的对象,是一组数据和功能(函数)的集合。
创建对象的方法有两种:
第一种是使用new操作符后跟Object构造函数,如下所示
var person = new Object();
person.name = "Micheal";
person.age = 24;
第二种方式是使用对象字面量表示法,如下所示
var person = {
name : "Micheal",
age : 24
};
网友评论