欢迎光临散文网 会员登陆 & 注册

数字类型、Number和new Number的区别

2022-12-08 20:23 作者:布依前端  | 我要投稿

       不难看出三种类型都和数字相关,但是都有各自存在的意义,而且在实际前端开发中都比较常用。例如字符串类型数字转化为Number类型,方便计算价格等等。接下来做个全面讲解,结合源码和贴近开发案例。

1、 数字类型: let num1 = 100,在js中表示声明一个数字类型变量,实质上也是把数字转化成Numer对象,所以可以调用toString()方法,可以用来参与加减乘除的数学计算,例如num1 *1=100,num1+1=101,num1-1=99,num1 /1=100;

2、Number类型:用于将后端接口返回的字符串转化成数字类型,和定义数字变量全等关系,比如价格 let num2 = '100',除了显示在页面,还可以转化成数字类型 const num3 = Number(num2 ),还能保留有效小数位,比如const num3 = Number(num2 ).toFixed(2),输出结果 100.00;

3、new Number类型:new Number(100),是把数字字符串或者数字类型转化成Number对象,因为js的new Number()后的对象用于原型链(toString)自带方法,比如toString()、valueOf()和toLocaleString()等等,详情看下图;

new Number()创建对象后的结构

比较三者:

js代码
输出结果

总结:

        从实际结果不难看出,num1和num2是数字类型,num3是对象,Number 和数字类型全等,二者和new Number结果不全等。值得关注的是,一个原始类型值并没有任何可用的方法,其使用的方法是包装对象原型上的,例如:(12).toFixed(),toFixed()实际上是在Number对象原型(prototype)中声明的方法。

        理解有误的地方,大家评论区安排建议哈,谢谢!


数字类型、Number和new Number的区别的评论 (共 条)

分享到微博请遵守国家法律