数据类型

ECMAScript中有5种基本数据类型:Undefined,Null,Boolean,Number,String和一种复杂的数据类型:Object

typeof:监测给定变量的数据类型,使用typeof操作符可能返回一下某个字符串:
"undefined":这个值未定义;
"boolean":这个值是布尔值;
"string":这个值是字符串;
"number":这个值是数值;
"object":这个值是对象或者null;
"function":这个值是函数。
var message = "some thing";
alert(typeof message);//"string"
alert(typeof message);//"string"
alert(typeof 95);//"number"
typeof是一个操作符而不是函数,圆括号可以使用,但不是必须的。从技术角度讲,函数在ECMAScript中是对象,而不是一种数据类型,但是函数有自己的一些特殊属性,所以通过typeof操作符来区分函数和其他对象是有必要的。

1.Undefined类型:
Undefined类型只有一个值,即undefined。
在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。
var message;
alert(message);//undefined
alert(message == undefined);//true
alert(age);//产生错误
对未初始化和未声明的变量执行typeof操作符都返回了undefined值:
var message;
alert(typeof(message));//undefined
alert(typeof(age));//true

2.Null类型:
Null类型也只有一个值,即null,从逻辑角度讲,null值表示一个空对象指针,所以typeof监测null会返回"object"。
undefined值是派生自null值,所以alert(null == unfined);//true

3.Boolean类型:
Boolean类型有两个字面值,即true和false

数据类型转换为true的值 转换为false的值
Boolean
truefalse
String
任何非空字符串""(空字符串)
Number
任何非零数字值(包括无穷大)0和NaN
Object
任何对象null
Undefined
不适用undefined


4.Number类型:
+0和-0是相等的。
浮点数值:
浮点数值的最高精度是17位小数。由于保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机地将浮点数值转换为整数值。
如果小数点后面没有跟任何数字,那么这个数字就可以作为整数值来保存。
var floatNum1 = 1.//解析为1
var floatNum2 = 10.0//解析为10
数值范围:
使用isFinite()函数,在参数位于最小和最大数值之间时会返回true
NaN:
isNaN()在接到一个值之后,会尝试将这个值转换为数值
数值转换:
有三个函数可以把非数值转换为数值:Number();parseInt(),parseFloat()
alert(Number(true));//1
alert(Number(false));//0
alert(Number(null));//0
alert(Number(underfined))//NaN
alert(Number("11"))//11
alert(Number("011"));//11
alert(Number("Hello Word"));//NaN
alert(parseInt("1234blue"));//1234
alert(parseInt(""));//NaN
alert(parseInt("0xA"));//10
alert(parseInt(22.5));//22
alert(parseInt("070"));//56
alert(parseInt("70"));//70
alert(parseInt("0xf"));//15
alert(parseInt("AF",16));//175
parseFloat()与parseInt()类似。


5.String类型:
String类型表示0个或多个16位Unicode字符组成的字符序列。
转换为字符串:var age = 11 ;alert(age.toString());//"11"
alert(age + "");//"11"


6.Object类型:
var o = new Object();
Object的每个实例都具有下列属性和方法:
constructor:保存用于创建当前对象的函数。
hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。o.hasOwnProperty("name")。
isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型。
propertyIsEnumberable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举。
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应
toString():返回对象的字符串表示。
valueOf():返回对象的字符串、数值或布尔值表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值