zoukankan      html  css  js  c++  java
  • 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

      

    本文章属于个人原创,如需转载,请加上原文链接,谢谢。
  • 相关阅读:
    Mongodb 查询时间类型
    Python更新所有pip package
    Python selenium on windows
    Redis cluster setup on windows
    CAP定理(theorem)
    error: Microsoft Visual C++ 14.0 is required when installing python package
    using RNGCryptoServiceProvider to generate random string
    <map>的使用
    二维vector的使用
    vector做形参时的三种传参方式
  • 原文地址:https://www.cnblogs.com/yuanzm/p/3739562.html
Copyright © 2011-2022 走看看