• parseInt()、Number()最清晰的区别分析


    parseInt()、Number()这两个函数用到最多的地方就是把一个字符串转换成数据类型,那么他们都有哪些区别?
    ####1、parseInt()
    parseInt()函数将给定的字符串以指定的基数解析为整数。
    parseInt(string,radix)
    第二个参数表示使用的进制,我们一般使用10进制,也可能会有到8或者16进制。为了避免对“0”和“0x”开头的字符串解析错误,各种javascript编程规范都规定必须要明确给出第二个参数的值,如parseInt(“123”,10).

    parseInt('16', 8)  = 14
    parseInt('10', 8)  = 8
    
    parseInt('16', 10)  = 16
    parseInt('10', 10)  = 10
    
    parseInt('16', 16)  = 22
    parseInt('10', 16)  = 16

    parseInt从头解析string为整数,在遇到不能解析的字符时就返回已经解析的整数部分,如果第一个字符就不能解析,就直接返回NaN。

    ####2、Number()
    Number()在不用new操作符时,可以用来执行类型转换。如果无法转换为数字,就返回NaN。
    像“123a”,parseInt()返回是123,Number()返回是NaN。

    不同类型的字符串使用这两个函数的转换区别:

    // 当字符串是由数字组成的时候 他们转换的数字一样的没有差别  
    let numStr = '123'
    console.log(parseInt(numStr))   //123
    console.log(Number(numStr))        //123
    
    // 当字符串是由字母组成的时候 
    let numStr = 'abc'
    console.log(parseInt(numStr))   //NaN
    console.log(Number(numStr))        //NaN
    
    // 当字符串是由数字和字母组成的时候 
    let numStr = '123a'
    console.log(parseInt(numStr))   //123
    console.log(Number(numStr))        //NaN
    
    // 当字符串是由0和数字
    let numStr = '0123'
    console.log(parseInt(numStr))   //123
    console.log(Number(numStr))        //123
    
    // **当字符串包含小数点**
    let numStr = '123.456'
    console.log(parseInt(numStr))        //123
    console.log(Number(numStr))            //123.456
    
    // **当字符串为null时**
    let numStr = null
    console.log(parseInt(numStr))        //NaN
    console.log(Number(numStr))            //0
    
    // **当字符串为''(空)时**
    let numStr = ''
    console.log(parseInt(numStr))        //NaN
    console.log(Number(numStr))            //0

    综上 使用这两个函数的时候要根据自己的具体需求和字符串可能出现的类型来选择使用。

    转载:https://blog.csdn.net/one_girl/article/details/80223392

  • 相关阅读:
    Vue 基础篇一
    ES6常用语法
    Django的认证系统
    Django中的Form表单
    AJAX
    Django中的中间件
    Django ORM操作__聚合,分组查询
    Django ORM操作
    Luogu1382 楼房 (线段树 扫描线)
    Luogu2251 质量检测 (ST表)
  • 原文地址:https://www.cnblogs.com/NanKe-Studying/p/13750902.html
Copyright © 2020-2023  润新知