Number与parseInt的区别

Number与parseInt都是JS数值转换的函数。

  1. 首先从语义上来辨别两者的区别(这也是我记各种函数等内容的区别方法)。
Number() ,从翻译中看语义,number就是数字的之意。
它意味着无论给Number()传入任何参数,它可以把内容转换为数字

parseInt(),在英语上,`分析词句`之意,而 Int 则是我们定义变量时的整数类型。
显而易见,则是通过分析把词句转换为整型。
而在JS中,我们词句的数据类型,就是我们常见的`string`字符串
因此,parseInt()就是把字符串转换为整型之意
测试样例:
/*******************************Number********************************/
Number("123")       //123     字符串
Number("")          //0       字符串
Number(true)        //1       布尔
Number(null)        //0       对象
Number(1.1)         //1.1     浮点数
/*******************************parseInt********************************/
parseInt("123")  //123       字符串
parseInt("");     //NaN       字符串
parseInt(true)    //NaN       Boolean
parseInt(null)    //NaN       对象
parseInt(1.1)     //1         浮点数
  1. 在进行数值转换的过程中
    (1)Number有较为复杂的转换规则

如果是boolean值,true和false将分别转换为十进制数值
如果是数字值,只是简单的传入与返回
如果是null, 返回0
如果是undefined ,返回NaN
如果是字符串,遵循下列原则:
1.只包含数字,八进制的数值将会被忽略前面的0,直接显示为十进制 如:“011” 应为 ‘9’但只能转换为‘11’;
2.浮点数可以转换为对应的浮点数值
3.如果是十六进制会转换为十进制值
4.如果字符串为空转换为0
5.其他转为NaN

(2) parseInt()在转换字符是更看其是否符合数值模式。它会忽略字符串前面的空格,知道找到第一个非空格字符。它是逐个解析字符的
e.g:parseInt("1234aaa")输出为“1234” 如果第一个字符是数字字符,会继续解析第二个字符,直到解析完所有的后续字符或者遇到了一个非数字字符。

parseInt()同样不具有解析八进制的能力,所以可以给parseInt()加入第二个参数
e.g:parseInt("AF",16); //175 后面还可以为2,8,10,16,默认情况下为10

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,677评论 0 13
  • 原文转自: https://www.w3cmm.com/JavaScript/number-parseint-pa...
    wangyujie1207阅读 4,090评论 0 2
  • 什么是 JavaScript 语言? JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”(script...
    oWSQo阅读 5,765评论 0 1
  • 【周四晨问】 你如何看待自己的人生? 【九,答晨问】 以前的回答是向死而生,难免有点悲凄壮烈。反转一下:因为对生命...
    Archer莫阅读 1,768评论 0 1
  • 这两年,越来越多的朋友成了异地恋,也越来越多的人总是问我,你有没有什么秘籍传授啊,你可是已经异地很多年了。 没错,...
    冬暖语阅读 3,772评论 2 4