JavaScript内核与高级编程之:`JavaScript` 的 `Symbol.toStringTag`:其在 `Object.prototype.toString` 中的作用。

各位老铁,双击666!咱们今天唠唠 Symbol.toStringTag 这玩意儿! 大家好,我是你们的老朋友,今天咱们不聊妹子,不聊游戏,就来聊聊 JavaScript 里一个比较隐蔽,但又有点意思的小家伙 —— Symbol.toStringTag。别怕,虽然名字里带 Symbol,听起来好像很高大上,但其实理解起来很简单,保证听完之后,你也能对着 Object.prototype.toString 喊一声 "666"! 啥是 Object.prototype.toString? 首先,我们先来复习一下 Object.prototype.toString。这玩意儿是 JavaScript 里所有对象都继承的一个方法。简单来说,它能把任何对象都“变成”一个字符串,但是这个字符串不是你想怎么变就怎么变,而是有一定格式的:”[object Type]”。 [object 是固定的前缀。 Type 是对象的“类型”。 ] 是固定的后缀。 举个例子: const arr = [1, 2, 3]; console.log(Object.prototype.toString. …

Symbol.toStringTag:自定义对象 `toString()` 行为

Symbol.toStringTag:让你的对象不再“千篇一律” JavaScript 这门语言啊,有时候就像个闷葫芦,很多东西藏着掖着,不轻易告诉你。就拿 toString() 方法来说,几乎每个对象都有它,但默认情况下,它吐出来的东西常常让人摸不着头脑。比如,你创建一个自定义对象,调用 toString(),得到的往往只是 [object Object] 这样冷冰冰的字符串。 想象一下,你辛辛苦苦设计了一个精妙的数据结构,比如一个 ShoppingCart (购物车) 对象,里面包含了各种商品信息,结果调用 toString() 却只能看到 [object Object],是不是觉得自己的心血被无情地践踏了?你肯定想让它更清晰地表达自己的身份,例如 [object ShoppingCart]。 别灰心,JavaScript 其实留了一扇小小的后门,让你有机会自定义 toString() 的行为。这扇门的钥匙,就是我们今天要聊的主角:Symbol.toStringTag。 Symbol.toStringTag 是什么? 简单来说,Symbol.toStringTag 是一个特殊的 S …