You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript内置Number对象的length属性有什么作用

为什么JavaScript内置对象Number存在length属性?

首先搞清楚本质:Number不是普通对象,它是JavaScript的内置构造函数,本质上就是个函数。
JS里所有函数,不管是开发者自定义的还是运行时内置的,天生就带length属性,这个属性的作用非常明确:统计函数定义时,第一个带默认值的参数之前,所有无默认值的形参数量,剩余参数(...args)不算在内。

拿几个自定义函数举例子就能看懂规则:

// 两个无默认值的形参,length为2
function demo1(a, b) {}
console.log(demo1.length) // 2

// 第一个带默认值的参数是b,前面只有a符合统计规则,length为1
function demo2(a, b = 1, c) {}
console.log(demo2.length) // 1

// 剩余参数不计入统计,length为2
function demo3(a, b, ...rest) {}
console.log(demo3.length) // 2

回到Number本身,它作为构造函数/类型转换函数,定义时就只接收1个入参——也就是要被转成数字类型的值,比如我们平时写的Number('123')、Number(false),都是只传这一个参数。它的形参列表里刚好只有1个符合统计规则的形参,所以length值为1,完全符合函数的通用规则,不是什么专门给Number设计的特殊属性。

你之前写的测试代码运行结果也能验证这点:

var n = Number;
n;

控制台打印的静态成员列表里,除了各种数值常量、静态方法之外的length: 1,就是函数自带的默认属性。

这个规则对所有内置函数都生效,随便举几个例子:

  • Object.length 值为1
  • String.length 值为1
  • parseInt.length 值为2
  • Math.max.length 值为2

内容的提问来源于stack exchange,提问作者redchicken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 07:48:08