簡體   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