JavaScript中的数据类型转换

  最近还是在看《JavaScript高级程序设计》,看了接近一半了,打算停下来检查一下自己看书的成果。昨天饶有兴致去做了一套2014阿里巴巴校园招聘前端在线笔试题,完整的一套居然有37题,真是累出*。在看了好几个人的答案之后,觉得在JavaScript中数据类型的转换是一个既重要,又容易犯迷糊的知识点,打算自己写上一篇博客,以便自己日后查阅。

  在写下这篇博客之前,习惯性的百度了一下别人怎么讲述我自己将要讲述的东西,发现大家的重点是罗列所有方法。我打算和大伙不一样的是,主要想谈一谈我自己以前不太明白的。

  JavaScript的数据类型转换主要有三类:

  • 原始值转换成原始值
  • 原始值转换成对象
  • 对象转换成原始值

  上面所讲到的原始值是指string、int 和 boolean这些基本类型的值。在这三种转换当中,根据转换方式又可以划分成显示转换和隐式转换。其中显示转换又可以叫做强制转化,也就是调用强制Number、String和Boolean三个构造函数,手动将各种类型的值,转换成数字、字符串或者布尔值。下面简单介绍一下这三种方法的用法。

1.转型函数Number():

  • 如果是布尔值,得到的结果是1(true)和0(false)
  • 如果是数字,只是简单的传入传出
  • 如果是null,返回0
  • 如果是undefined,返回NaN
  • 如果是字符串,包含几种情况:
    • 如果是空的字符串,返回0
    • 如果只包含数字,会转换成十进制数字
    • 如果字符串是有效的浮点数格式,转换成对应的浮点数
    • 如果是有效的十六进制格式,转换成对应的十进制数字
    • 如果不是以上格式,返回NaN
1 var bool = true;        //布尔值true,返回1
2 var num = 12345;        //单纯的数字,返回12345
3 var nullVal = null;        //返回0
4 var test = undefined;    //返回NaN
5 var emptyString = " ";  //返回0
6 var numString = "12345";//返回12345
7 var floatString = "1.2345";        //返回1.2345
8 var num2 = "0xf";        //返回15
9 var test2 = "hello";        //返回NaN

2.转型函数String():如果值有toSting()方法,首先调用该方法,如果没有该方法,则按照一下规则调用

  • 如果是数值,得到相应的字符串
  • 如果是null,返回字符串“null”
  • 如果是undefined,返回“undefined”
  • 如果是布尔值,则转换成“true”(true)和“false”(false)
var value1 = 12345;        //返回"12345"
var value2 = null;        //返回 "null"
var value3 = undefined; //返回 "undefined"
var value4 = true;        //返回true

3.转型函数Boolean():使用Boolean函数,可以将任意类型的变量转为布尔值

  • 除了undefined,null,0,-0,NaN,“ ”返回值为false,其他全部是true
1 var value1 = undefined;        //false
2 var value2 = null;        //false
3 var value3 = 0;        //false
4 var value4 = -0;        //false
5 var value5 = NaN;        //false
6 var value6 = " ";        //false
7 var value7 = {
8     name : "Jerry"
9 };                    //true

  

posted on 2014-05-20 19:46  红豆依旧在  阅读(821)  评论(0编辑  收藏  举报

导航