你知道 📦 JS 中的自动装箱是什么吗?

2025-06-04

你知道 📦 JS 中的自动装箱是什么吗?

让我们从“什么是原始类型,以及如何定义它们?”这个问题开始

原始类型没有方法或属性。

让我们看看 JS 中的一些基本类型。我们先尝试一下数字和字符串。

const name = "Doggo"
const age = 7

console.log(typeof name) // string
console.log(typeof age) // number
Enter fullscreen mode Exit fullscreen mode

name是原始类型字符串,age是数字。这两个原始类型都不应该具有任何属性或方法。让我们检查一下:

console.log(name.length) // 5
console.log(age.toString()) // "7"
Enter fullscreen mode Exit fullscreen mode

为什么这个方法可以正常工作,而且不会抛出错误?看起来这两个原始类型实际上都是对象!但实际上不是!它们的行为就像对象一样,只是因为自动装箱。每当我们尝试访问原始类型的方法或属性时,该原始类型都会被包装到一个对象中。这就是所谓的自动装箱。自动装箱会将原始类型连接到相关的内置原型对象。在我们的例子中,这两个原型对象是String.prototypeNumber.prototype。这使我们能够访问原型方法和属性。

例如,这是数字原型:

数字原型


想要提升 Web 开发能力?
🚀🚀🚀订阅“周二教程”✉️新闻简报

文章来源:https://dev.to/benjaminmock/do-you-know-what-autoboxing-in-js-is-enl
PREV
✒️ 关于使用 JS 控制台 (console.log 和 console.table) 的一些🔥技巧
NEXT
JS AWS GenAI LIVE 中的 const 📦、seal 🤐、freeze ❄️ 和 immutability 🤓!