javascript当中的数据类型

ECMAScript中主要有五种简单数据类型和一种复杂数据类型。

五种简单数据类型包括:null,undefined,Number,String,Boolean。

另外一种复杂数据类型为:Object(无序键值对的集合)

使用“typeof”操作符可以检测数据类型.

下面分别来分析一下各种数据类型的特性和使用方法

1.undefind

使用var声明一个变量但是未对其进行初始化,那么变量的值就是undefined。

var message;
alert(message == undefined);      //true
alert(message);                   //undefined
alert(age);                       //报错 因为未声明
alert(typeof message);            //undefined
alert(typeof age);                //undefined

这里有一个未声明的变量,在使用它时,会报错,因为编译器找不到这个变量。

但是使用typeof检测类型时,返回的也是undefined。虽然有些牵强,但是javascript只有六种数据类型,看起来貌似只能是null或undefined符合,但为什么是undefined而不是null呢,我们来看一下null是个什么样的数据类型。

2.null

空对象指针

var car = null;
alert(typeof car);                 //Object
《javascript高级程序设计》书中写道:如果定义的变量准备将来用语保存对象,那么最好将该变量初始化为null而不是其它值。

实际上,undefined是派生于null的。

alert(null == undefined);                  //true

3.Boolean

布尔值有两个,true和false。尽管有时候我们在程序中会用1来代替true,用0来代替false,但是他们之间是不能划等号的。

下表是各种数据类型在不同状态下对应的布尔值。

数据类型转换为true的值转换为false的值
Booleantruefalse
String任何非空字符串空字符串
Number任何非零数字值(包括Infinity)0和NAN
Objectanyonenull
undefined undefined

4.Number

number包括整数和浮点数值(双精度),也就是小数。浮点数的占用空间是整数的两倍。

浮点数的最高精度为17,所以进行计算时精度会受影响。

比如:0.1+0.2 = 0.30000000000000004;

数字开头为0,是8进制数字。开头为0x,是16进制数字。在进行数值计算时,八进制和十六进制的数字都会被转换成十进制。

数值范围:-Infinity < Number.MIN_VALUE < 0 < Number.MAX_VALUE < Infinity。

  数值转换

  Number():可用于任何数据类型

   Number(null) = 0;   Number(undefined) = NAN;    Number(true) = 1;     Number(011) = 11;   Number(0xA) = 10;

   如果是对象,就会调用valueof()方法,依照上面的原则转换,如果结果为NAN,那么调用toString()方法,再依照上面的原则转换。

  parseInt():转换字符串

   忽略掉字符串开头的空格字符,如果第一个非空字符是数字或者负号,那么继续向下转换,直到遇到下一个非数字字符,输出结果。

   如果空格之后第一个字符不是数字或者负号,那么输出NAN。

   parseInt()方法提供两个参数,第一个是待转换字符串,第二个是目标进制。

   parseInt("11",2) = 3;   parseInt("10",10) = 10;   parseInt("11",8) = 9;

   大部分情况下,第二个参数都使用10。

  parseFloat():转换字符串

    解析原则和parseInt相同,主要用来解析浮点数。

    parseFloat("022.3") = 22.3;    parseFloat("22.3.4") = 22.3; 

5.String

由0或多个16位Unicode字符组成的字符序列,也就是我们说的字符串。

将一个数值转换成字符串有两种方式。

第一个是toString()方法,除了null和undefined之外,其他数据类型都有这个方法。

var num = 11;num.toString() = "11";

var boo = true;boo.toString() = "true";

toString()方法括号内还可以设置参数,在转换数值的时候起作用

var num = 10;

alert(num.toString(2));             // "1010"

alert(num.toString(16));           //a
 









  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值