向JavaScript 基元添加屬性的限制
當遇到無法向字符串基元添加屬性的代碼時,了解這一點至關重要JavaScript 原語的基本性質。在JavaScript 中,有八種不同的類型:七種原始類型和一種非原始類型:
-
原始類型:
- 未定義
- 空
- 布林值
- 數字
- BigInt
- 字串
- 符號
字串
- 符號
符號
非原始型:
物件
<code class="js">foo.bar = 'abc';</code>
登入後複製
- 與原始型別相關的值稱為原值,缺乏保存屬性的能力。相反,Object 非基本類型的值稱為對象,並且可以擁有屬性。
- 屬性賦值行為
-
將屬性分配給變數時,例如as:未定義/空:導致錯誤。
物件:定義或更新 foo 物件上名為「bar」的屬性並將其值設為「abc」。
任何其他類型:
嚴格模式:類型錯誤:「無法分配foo 上的屬性'bar':不是一個物件。」
鬆散模式:無操作,foo 不變。
<code class="js">test.test = "test inner";</code>
登入後複製
因此,分配屬性只會使
具體情況:無法使用日期屬性來擴充字串基元-
- 在提供的範例中,變數test 包含String 類型的值。因此,嘗試新增屬性會失敗。
-
在網格上對日期進行排序的解決方法如果修改代碼以直接綁定到日期對像不切實際,考慮以下替代解決方案:使用能夠處理日期排序的函式庫或框架,例如moment.js。 將日期字串轉換為可以保存日期的自訂資料類型原始日期值並在網格排序過程中使用該自訂類型。 覆蓋網格的預設排序機制以專門處理日期字串,確保它們按時間順序排序。
以上是為什麼我無法在 JavaScript 字串中新增屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!