zoukankan      html  css  js  c++  java
  • js parseInt()与Number()区别

    说到转换成数字类型,我首先想到的是parseInt()方法,后来接触多了才发现还有一个Number()方法,同样是转换成数字类型,这两种方法有什么不同的呢?

    1.parseInt():

         parseInt(string,radix):将字符串解析转化为数字类型,返回的是整数;

              string:待被解析的字符串;

            radix:表示要解析转换的进制

           PS:(如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将                返 回 NaN);

    例:

    alert(parseInt("10")) ; //10
    alert(parseInt("19",10));   //19,1*10^1+9*10^0=19
    alert(parseInt("11","2"));  //3,1*2^1+1*2^0=3
    alert(parseInt("17","8"));  //15,1*8^1=7*8^0=15

    当遇到数字后带有字符串,则只返回前面的数字(例parseInt(123mgn)=123),如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。

    2.Number()

          Number(object):将对象的值转换为数字;

            如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。

           如果参数是 Date 对象,Number() 返回从 1970 年 1 月 1 日至今的毫秒数。

    <script type="text/javascript">
    
    var test1= new Boolean(true);
    var test2= new Boolean(false);
    var test4= new String("999");
    var test5= new String("999 888");
    
    document.write(Number(test1)+ "<br />");  //1
    document.write(Number(test2)+ "<br />");  //0
    document.write(Number(test4)+ "<br />");  //999
    document.write(Number(test5)+ "<br />");  //NaN
    
    </script>

    为了更直观的体会两者之间的区别,我们看一下两种方法的结果:

    //当字符串只有数字组成
    var numbeTrans="9898";
    alert(parseInt(numberTrans));  //9898
    alert(Number(numberTrans));   //9898
    
    //当数字只有字母组成
    var numbeTrans="abab";
    alert(parseInt(numberTrans));  //NaN
    alert(Number(numberTrans));  //NaN
    
    //当字符串由字母与数字组成
    var numbeTrans="123ab";
    alert(parseInt(numberTrans));  //123
    alert(Number(numberTrans));  //NaN
    
    //当字符串为小数时
    var numbeTrans="123.123";
    alert(parseInt(numberTrans));  //123
    alert(Number(numberTrans));  //123.123
    
    //当字符串为空null时
    var numbeTrans="null";
    alert(parseInt(numberTrans));  //NaN
    alert(Number(numberTrans));   //0
    
    //当字符串为空“ ”时
    var numbeTrans=" ";
    alert(parseInt(numberTrans));  //NaN
    alert(Number(numberTrans));   //0
  • 相关阅读:
    基于easyUI实现权限管理系统(一)一—组织结构树图形
    基于jquery实现图片拖动和曲线拖放
    SOLID原则
    架构设计-C4
    中台战略
    DDD
    GraphQL
    kafka笔记
    maven
    GIT
  • 原文地址:https://www.cnblogs.com/xiao-baobao/p/10158516.html
Copyright © 2011-2022 走看看