要麼你說' - '作爲減法表達式。爲什麼我們需要使用[]來訪問變量名包括hyphan?
例如,
Json = {'Me-m':123}
但是你有沒有想過爲什麼我們需要使用[]
來訪問這個連字符變量。
就像那樣Json['Me-m']
。
要麼你說' - '作爲減法表達式。爲什麼我們需要使用[]來訪問變量名包括hyphan?
例如,
Json = {'Me-m':123}
但是你有沒有想過爲什麼我們需要使用[]
來訪問這個連字符變量。
就像那樣Json['Me-m']
。
書面方式
Json.Me-m
將評估爲
Json.Me - m
它會嘗試從JSON對象訪問我的財產,減去m個可變,這將可能是不確定的。
這是因爲「 - 」在JavaScript中的意義,因此,如果你寫Json.Me-m
JavaScript的解釋:「變量m
的值。減去對象``Json`的屬性Me
的價值」。
在JavaScript中,您可以訪問名稱的對象的任何成員,使用[]
,並在字符串中,JavaScript是不打算嘗試評估什麼,所以當你寫Json[
我-M ]
,它解釋爲: '檢索對象的名稱Me-m
的值Json
'
原因很簡單:在Javascript中,每個對象都是一個索引鍵/值字典,使用「。」訪問變量。這是一個捷徑,顯然「字典對象」這是一個性能問題的事實,但儘管如此,JavaScript與其他腳本語言相比非常快。
回答你的問題,通過設計一個索引可以是一個包含「 - 」字符的字符串,但不是一個屬性...所以如果你有一個屬性與該字符,它將無法用「。 「符號。
因爲你傳遞一個特殊字符鍵obj的一部分,爲了訪問obj的值,我們需要使用[]。 例如。 json ['Me-m']
你的問題的第一句話就是答案。它將被視爲減法運算符。 – Quentin
要使用[點符號](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Operators/Property_accessors#Dot_notation),您需要一個有效的[標識符](https://developer.mozilla.org/docs/Glossary/Identifier),其中'Me-m'不是。 – Yoshi