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

为何new Array(256).join(' ')返回255个空格而非256个?

为什么 new Array(256).join(' ') 返回255个空格?

这事儿得从两个核心点拆解清楚:Array 构造函数的行为,以及 join() 方法的工作逻辑。

  • 先看 new Array(256) 到底创建了什么
    当你给 Array 构造函数传单个数字参数时,它会生成一个长度为该数字的稀疏数组——也就是说,这个数组的length属性是256,但索引0到255的位置都是空槽,没有实际赋值的元素。

  • 再聊 join(' ') 的拼接规则
    join() 方法的本质是把数组里的所有元素用指定分隔符串成字符串,而它的核心规律是:分隔符的出现次数 = 数组中有效元素的数量 - 1。
    对于这个长度为256的稀疏数组,join() 会把每个空槽当作undefined处理,而undefined在拼接时会被转为空字符串。相当于你有256个空字符串要拼接,那需要的空格分隔符数量就是256 - 1 = 255个。

用个简单例子验证下:

// 长度为3的数组,join后分隔符出现2次
console.log(new Array(3).join('x')); // 输出 "xx"

这下就能明白为啥结果是255个空格啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:32:05