繁体   English   中英

将字符串作为数组前缀与将字符串作为对象数组前缀 - React/JS

[英]Prefixing a String to an array vs Prefixing a string to an array of objects - React/JS

为什么使用以下声明和赋值

const num = [1,2,3,4,5];

这是允许的吗?会给 [1,2,3,4,5] "Jello"

console.log(num + "Jello");

但是通过以下声明和赋值

const num = { Flavour: "Apple" };

不会给你苹果“果冻”

console.log(num + "Jello");

(注意:下面链接到 MDN 上的页面,最初是作为 Mozilla 浏览器中 JS 的文档,但现在适用于此之外。)

首先,要让a + b返回一个合理的结果, ab应该是同一类型。 如果它们是不同的类型,则必须将它们强制转换为相同的类型(另请参阅 ECMAScript 2021,第 7.1 节“类型转换” )。

此外, 加法运算符仅适用于两种类型:数字和字符串(另请参阅 ECMAScript 2021,第 13.8 节“加法运算符” )。 基本上,如果操作数不是两个数字,那么基本上通过调用它们的toString()方法将它们强制转换为字符串( 确切的过程稍微复杂一点,并考虑原语,例如null ,它们不有一个toString方法)。

对于 arrays, Array.prototype.toString将在每个元素上调用toString()并用逗号连接结果(它的内容在Array.prototype.join的规范中定义)。 更通用的Object.prototype.toString对于 object 文字,将只返回'[object Object]' 该值来自Object.prototype.toString的规范,格式为`[object ${Tag}]` ,其中Tag是表示 object 的内置类型的字符串。

要获取包含 object 表示的字符串,您需要使用类似JSON.stringify

JSON.stringify({ Flavour: "Apple" }) + ' Jello'

如果你只想要值,而 object 是平面的(即没有值本身是对象),你可以使用Object.values

Object.values({ Cost: "Cheap", Flavour: "Apple" }) + 'Jello'

如果你想用逗号以外的东西连接值,用分隔符显式调用join

Object.values({ Cost: "Cheap", Flavour: "Apple" }).join(' ') + ' Jello'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM