JavaScript数据类型(上)——基本数据类型

来源:互联网 发布:中华名人名篇网络 编辑:程序博客网 时间:2024/06/05 07:04

数据类型

ECMA中有5种简单(基本)数据类型或称基本数据类型:
undefined、null、Boolean、Number、String
1种复杂数据类型——Object :
包括原生类型
Array、Date、RegExp、Function、基本包装类型(Boolean、Number和String)(new的方式定义)
以及用户自定义的对象类型。而所有的对象类型(又称为引用类型,对象也即引用类型的实例)都继承自Object,所以统称为Object类型。

一、undefined

使用var声明变量但未对其进行初始化时,变量的值是undefined;
如:

var a;  alert(a);//undefined

但是未定义的变量调用会发生错误。如:

alert(b);//error

注意:
①对象中调用未定义的成员,会提示undefined。

var obj={a:1,b:2}; alert(obj.c);// undefined表示没有该属性

同样对象中定义未赋值的成员,也会返回undefined。
②使用typeof对未定义的变量执行操作,同样会返回undefined。

typeof b//undefined

③函数没有返回值,调用函数返回undefined。

二、Null

值为空;逻辑角度讲,Null是空对象指针,因此使用typeof操作符检测null值会返回object。

三、Boolean

Boolean类型的true和false区分大小写,True不是布尔值,只是标识符。

四、Number

NaN和Infinity是两个特殊的Number。
1、整数

(1)十进制 var a=10;
(2)八进制 var a=07;
(3)十六进制 var a=0xA;
2、浮点数

(1)采用IEEE754标准。
(2)科学计数法:e:10的多少次方。

var floatNum=3.125e7;//31250000

(3)注意两点:
①浮点数值占用的内存空间是整数值的两倍,ECMAScript会不失时机的将浮点数值转换为整数值。
②因为浮点数的精确度不如整数,永远不要对浮点数进行比较性运算。

a=0.1;b=0.2;a+b==0.3;//false

3、NaN

NaN是非数值(Not a Num)即一个特殊的数值。
NaN不与任何值相等包括它本身。
isNaN(传参) 查看参数是否能转换成数值(对于对象先调用toValue()无效的话再调用toString()再进行转换)
4、数值转换

(1)Number
会自动去掉前导的0如“011”会转换为11。因此不能识别八进制。
(2)parseInt
①会忽略前面的空格,直至找到第一个非空格字符(因此使用parseInt转空字符串会返回NaN)->向后解析到非数字字符/结束。
②ECMAScript3中parseInt能解析八进制,如070(56);而ECMAScript5中不能解析,如070(70)。
③可加第二个参数,设置转成什么进制。

var num1=parseInt("AF",16);//175

(3)parseFloat
只解析十进制的值,如果参数可解析为整数,则返回整数。

五、String

字符串可使用单引号也可使用双引号
字符串的长度可通过length属性取得
字符串可使用+号进行拼接
字符串转换:
(1)toString(n) //n为要转换的基数(进制数)

var num=10; num.toString(8);//"12"

只有null和undefined类型的值没有toString()方法。可用下面的函数。
(2)String(num)//num为要转换的参数
不是null和undefined时调用toString()
是null返回null,是undefined返回undefined。

0 0