js 数字字面量和 Number(n) 的区别?

const a = 22;
const b = Number(22)

上面两个步骤的区别是什么?
为什么 a 可以直接执行了Number 原型链上的方法?
在声明的时候做了什么操作?

阅读 1.4k
2 个回答
MDN 链接

image.png

这是一种自动行为,表现成了:虽然不是对象,却能使用对象方法。

(10.4).toFixed(); // 其表现如 new Number(10.4).toFixed()

a是数字,数字是包装类型,他在进行属性取值等操作时,会使用new Number(a)进行包装成对象,所以可以执行原型链上的方法
b也是数字,Number主要用于将一个值(比如字符串,boolean)转化为数字,这里可以省略Number

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题