zoukankan      html  css  js  c++  java
  • 四、javascript中的数值以及字符串的转化方法

    ## 将一个非数值数据转换为数值
    有三个方法能将一个非数值转换为数值:Number(),parseInt()和parseFloat()

    Number()

    Number转换规则如下:
    1. Boolean类型的true和false分别转换为1和0;
    2. 数字值就是简单的传入和返回;
    3. null,返回0;
    4. undefined,返回NaN;
    5. 字符串则要分几种情况处理,空字符串返回0,仅包含数字或者数字及小数点的字符串,将其转换为相应的数值,包含除数字外其他类型字符的转为NaN;
    6. 对象的话,则调用对象的valueOf(), 按照前面的规则转换,若结果为NaN,则调用对象的toString(),在此按照前面的规则进行转换;

    Number('abc'); // NaN
    Number(''); // 0
    Number(true); // 1

    **注意:一元操作符也能实现和Number()一毛一样的功能。**

    Number()在处理字符串的时候比较复杂并且不够合理,因此在处理字符串的时候经常使用的是parseInt()和parseFloat().
    parseInt()和parseFloat()
    与Number()不同的是:

    • Number()将空字符串转换为0,而parseInt()和parseFloat()会将空字符串转换为NaN;
    • Number()转化的是整个值而不是部分值,parseInt()和parseFloat()只转化第一个无效字符之前的字符串。
    • parseInt()方法可以传第二个参数指定数值转换的基数(比如按照十进制解析还是按照八进制解析等),parseInt只能解析十进制值;
    Number('123abc'); // NaN
    parseInt('123abc'); // 123
    parseFloat('123.45ab); // 123.45
    parseInt('10', 2); // 2, 按照二进制解析
    parseInt('10', 10); // 10, 按照十进制解析

    **注意,再不指定parseInt()方法的基数,即不传第二个参数的时候,是由parseInt()来决定如何解析字符串的,因此为了避免错误的解析,我们最好永远指定基数

    将一个值转换为字符串
    有两种方式可以将一个值转换为字符串:toString()和String()

    toString()
    除了undefined和null都有toString()方法,大多数情况下调用toString()方法不必传参数,但在调用数值的toString()方法的时候,可以传递一个参数,输出数值的基数。

    String()
    这个函数可以将任何类型的值转换为字符串,当不知道要转换的值是否为null或者undefined的时候,则可以使用String()方法来转化。可将null转为'null',undefined转为'undefined'。

    **另外要把某个值转为字符串还可以与一个空字符串做加法操作,同样能达到转换目的**

  • 相关阅读:
    htmlspecialchar()
    LINUX权限bash: ./startup.sh: Permission denied
    str_replace()
    centos安装教程
    给准备做软件测试的新手们的一点个人心得
    TFS安装与管理
    TFS使用指南
    实现对n个数字随机排序,并循环输出100次
    SSM启动Tomcat报错ERROR [localhoststartStop1] Context initialization failed
    同济大学软件学院万院长谈择业
  • 原文地址:https://www.cnblogs.com/youyang-2018/p/11701257.html
Copyright © 2011-2022 走看看