我在訪問對象時看到了很多關於括號vs點符號的線程....但是,我正在通過freeCodeCamp,當我訪問一個語法如SomeonesName['online']
的對象時,它會建議我應該使用點符號?Javascript建議點符號?
除了速度更快.....究竟有什麼好處?我見過的所有減去「速度」似乎意味着支架符號更好?
有什麼我失蹤了嗎?或許「點」運算符做得更好的另一件事是什麼?
我在訪問對象時看到了很多關於括號vs點符號的線程....但是,我正在通過freeCodeCamp,當我訪問一個語法如SomeonesName['online']
的對象時,它會建議我應該使用點符號?Javascript建議點符號?
除了速度更快.....究竟有什麼好處?我見過的所有減去「速度」似乎意味着支架符號更好?
有什麼我失蹤了嗎?或許「點」運算符做得更好的另一件事是什麼?
經驗法則非常簡單。每次你可以使用點符號,使用它。當您必須操作無效的JavaScript標識符或需要傳遞變量鍵時,只需使用括號表示法。考慮下面的例子:
var obj = {
foo: "Foo",
_bar: "Bar",
$baz: "Baz",
"foo-bar": "Foo Bar",
quux: "Quux"
};
console.log(obj.foo);
console.log(obj._bar);
console.log(obj.$baz);
console.log(obj['foo-bar']);
var quux = "quux";
console.log(obj[quux]);
值可以從一個目的是通過在[]後綴包裝字符串 表達式檢索。如果字符串表達式是字符串 ,並且如果它是一個合法的JavaScript名稱而不是保留字,則 則爲。符號可以用來代替。這個。首選 ,因爲它更緊湊,讀取更好。
道格拉斯Crockford的,的JavaScript:好的部分
雖然你寫的都不是錯的,但這並沒有回答這個問題 - 它沒有說明這樣做的好處,也沒有說明它是否更快。 – Shadow
「可以通過在[]後綴中包裝字符串表達式來從對象中檢索值。如果字符串表達式是字符串文本,並且如果它是合法的JavaScript名稱而不是保留字,則可以使用。符號這個符號是首選,因爲它更緊湊,讀起來更好「(Douglas Crockford,* JavaScript:The Good Parts *) – Badacadabra
這是有用的信息添加到您的答案。 – Shadow
.
點符號寫得更快,讀起來更清晰。 []
方括號表示法允許訪問包含特殊字符的屬性和使用變量選擇屬性。
請詳查經歷:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Property_accessors
兩個以下各行的JavaScript功能相同;
SomeonesName.online
SomeonesName["online"]
你只真正需要的,如果你正在訪問與無效的名稱要使用的密鑰方括號(如一個包含.
或-
),或者如果您使用的是可變的。
否則,點符號更好讀寫,大多數linters和程序員更喜歡它。
關於您的編輯 - 它們在功能上都是相同的。他們需要花費相同的時間來運行,而使用正確的IDE,他們甚至可以花費相同的時間來編寫。這完全是一個偏好問題。除了風格一致性,沒有任何好處。
。 & []這兩個符號在功能上相同,執行速度沒有差異。只有當訪問鍵有一些特殊字符在JavaScript訪問屬性時衝突。
我會說使用哪一個你更舒適的。只要一致。我使用了codeacademy,有時你的代碼會正確,但freeCodeCamp我正在尋找一種特定的方式讓你做到這一點,以便轉到下一課。希望這可以幫助
你見過的什麼暗示括號表示法更好?大多數風格指南和/或標準lint規則集鼓勵/推薦/要求點符號儘可能。 – 2017-04-21 02:08:32
我見過一些人使用縮小器來縮短變量,以便在發佈前減少代碼文件的大小,但保持[「字符串」]不變,所以他們會使用括號作爲公共變量。 –