2017-04-21 6 views
2

私はオブジェクトにアクセスするときにブラケット対ドット表記法について数多くのスレッドを見ました....しかし、私はfreeCodeCampを経由しています。そして、SomeonesName['online']のような構文でオブジェクトにアクセスしているときには、代わりにドット表記を使うべきです?ドット表記を提案するJavascript?

さらに速く.....何が恩恵ですか?私が見たすべての「スピード」は、カッコ表記を暗示しているようです。

紛失しているものがありますか?おそらく "ドット"演算子がうまくいく別のものは?

+0

ブラケットの表記法が優れていることは何を見てきましたか?ほとんどのスタイルガイドや標準のlintルールセットは、可能であればドット表記を推奨/推奨/必要とします。 –

+0

パブリッシュ前にコードファイルのサイズを減らすために変数を短縮するが、["strings"]は変更しないでください。パブリック変数に角括弧を使用する人もいます。 –

答えて

3

非常に簡単です。ドット表記を使用できるたびに使用してください。無効な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名で予約語でない場合は、 となります。代わりに表記法を使用することができます。 。表記法はよりコンパクトで読みやすいので、 が好ましい。ダグラス・クロックフォード

のJavaScript:良い部品

+0

あなたが書いたものはどれも間違っていますが、これは質問に答えるものではありません。 – Shadow

+0

"文字列式を[]接尾辞でラップすることでオブジェクトから値を取得できます。文字列式が文字列リテラルで、正規のJavaScript名で予約語でない場合は、表記法を使用できますよりコンパクトで読みやすいので表記法が好ましい」(Douglas Crockford、* JavaScript:The Good Parts *) – Badacadabra

+0

これはあなたの答えに追加するのに便利な情報です。 – Shadow

3

2次の行は、JavaScriptで機能的に同じです。

SomeonesName.online 
SomeonesName["online"] 

あなただけの本当にあなたが(そのよう.-を含有するものなど)、または変数を使用している場合は無効である名前のキーにアクセスしている場合は、角括弧を使用する必要があります。

それ以外の場合は、ドット表記は読み書きがしやすく、ほとんどのリンターとプログラマーがそれを好む。

あなたの編集に関しては、機能的には全く同じです。実行には同じ時間がかかり、適切なIDEを使用すると、書き込みに同じ時間がかかることさえあります。純粋に好みの問題です。スタイルの一貫性とは別に利点はありません。

1

。 & []両方の表記は機能的に同じであり、実行速度に違いはありません。違いは、プロパティにアクセスする際にjavascriptで競合するいくつかの特殊文字を持つアクセスキーがある場合のみです。

0

私はこれまであなたがもっと快適であると言うでしょう。ただ一貫している。私はcodeacademyを使用していましたが、コードが正しくなることもありますが、freeCodeCampは次のレッスンに移行するための特別な方法を探しています。これが助けてくれるといいですか

関連する問題