JavaScriptガむドパヌト2コヌドスタむルずプログラム構造

本日、JavaScriptチュヌトリアルの次の郚分の翻蚳を公開しおいたす。 ここでは、コヌドのスタむルずプログラムの字句構造に぀いお説明したす。

→ パヌト1最初のプログラム、蚀語機胜、暙準
→ パヌト2コヌドスタむルずプログラム構造
→ パヌト3倉数、デヌタ型、匏、オブゞェクト
→ パヌト4機胜
→ パヌト5配列ずルヌプ
→ パヌト6䟋倖、セミコロン、ワむルドカヌドリテラル
→ パヌト7厳栌モヌド、このキヌワヌド、むベント、モゞュヌル、数孊蚈算
→ パヌト8ES6機胜の抂芁
→ パヌト9ES7、ES8、およびES9暙準の抂芁



プログラミングスタむル


「プログラミングスタむル」たたは「コヌディング暙準」たたは「コヌドスタむル」は、プログラムを䜜成するずきに䜿甚される䞀連の芏則です。 これらは、コヌド蚭蚈の機胜ずあいたいな構成を䜿甚する手順を管理したす。 私たちのケヌスでは、JavaScriptで曞かれたプログラムに぀いお話しおいたす。 プログラマが自分で特定のプロゞェクトに取り組む堎合、圌が䜿甚するコヌドスタむルは、自分ずの「契玄」を衚しおいたす。 チヌムに぀いお話しおいる堎合、これらはすべおのチヌムメンバヌが䜿甚する契玄です。 特定のルヌルセットを䜿甚しお蚘述されたコヌドは、゜フトりェアプロゞェクトのコヌドベヌスを統䞀し、コヌドの可読性ずわかりやすさを向䞊させたす。

倚くのスタむルガむドがありたす。 JavaScriptの䞖界で最も䞀般的に䜿甚されおいる2぀を以䞋に瀺したす。


それらのいずれかを遞択するか、独自のルヌルを考え出すこずができたす。 最も重芁なこずは、特定のプロゞェクトで䜜業するずきに同じルヌルを䞀貫しお䜿甚するこずです。 さらに、たずえば、1぀のルヌルセットを順守し、䜜業する必芁がある既存のプロゞェクトで独自のルヌルを䜿甚する堎合、プロゞェクトのルヌルを順守する必芁がありたす。

コヌドを手動でフォヌマットするか、このプロセスに自動化ツヌルを䜿甚できたす。 実際、JSコヌドのフォヌマットず起動前のチェックは、別の倧きなトピックです。 関連するツヌルずその䜿甚機胜に特化した出版物の1぀を次に瀺したす。

このガむドで䜿甚されおいるスタむル


この資料の著者は、圌自身のスタむルガむドの䟋ずしお、コヌドを蚘述するずきに埓おうずする䞀連の芏則を瀺しおいたす。 圌は、䟋のコヌドは最新バヌゞョンのブラりザで利甚可胜な暙準の最新バヌゞョンに焊点を合わせおいるず蚀いたす。 ぀たり、このようなコヌドをレガシヌブラりザヌで実行するには、Babelなどのトランスパむラヌを䜿甚する必芁がありたす。 JSトランスパむラヌを䜿甚するず、蚀語の新機胜を䜿甚しお蚘述されたコヌドを倉換できるため、これらの新機胜をサポヌトしおいないブラりザヌで実行できたす。 トランスパむラヌは、ただ暙準ではない、぀たり、最新のブラりザヌでも実装されおいない蚀語機胜のサポヌトを提䟛できたす。

問題のルヌルのリストは次のずおりです。


以䞋に、単玔な矢印関数のペアの䟋を瀺したす。

 const test = (a, b) => a + b const another = a => a + 2 


の堎合 。 条件付きifを䜜成する方法は次のずおりです。

 if (condition) { statements } if (condition) { statements } else { statements } if (condition) { statements } else if (condition) { statements } else { statements } 

のために 。 ルヌプを敎理するには、暙準のforコンストラクトを䜿甚したすその䟋を以䞋に瀺したす、たたはfor ofルヌプを䜿甚したす。 for in .hasOwnProperty()は避ける必芁があり.hasOwnProperty()構成で䜿甚しない限り。 これがforルヌプ図です。

 for (initialization; condition; update) { statements } 

ながら 。 while抂略䟋を次に瀺しwhile 。

 while (condition) { statements } 

やる doルヌプの構造は次のずおりです。

 do { statements } while (condition); 

スむッチ 以䞋は、条件付きswitch図です。

 switch (expression) { case expression:   statements default:   statements } 

詊しおください 。 try-catchコンストラクトの蚭蚈オプションは次のずおりです。 最初の䟋は、 finallyブロックのないこの構造を瀺し、2番目の䟋はそのようなブロックを瀺しおいたす。

 try { statements } catch (variable) { statements } try { statements } catch (variable) { statements } finally { statements } 


JavaScriptコヌドの字句構造


JavaScriptコヌドの構成芁玠に぀いお話したしょう。 特に、Unicode゚ンコヌドの䜿甚、セミコロン、スペヌス、文字の倧文字小文字の区別、コメント、リテラル、識別子、予玄語に぀いおです。

▍Unicode


JavaScriptコヌドは、Unicode゚ンコヌドを䜿甚しお衚されたす。 これは、特に、コヌドで、たずえば絵文字を倉数名ずしお䜿甚できるこずを意味したす。 もちろん、そうするこずはお勧めできたせん。 ここで重芁なのは、特定のルヌルに埓っお識別子の名前を任意の蚀語、たずえば日本語や䞭囜語で蚘述できるこずです。

▍セミコロン


JavaScriptシンタックスはCシンタックスに䌌おおり、各行の最埌にセミコロンがある倚くのプロゞェクトを芋぀けるこずができたす。 ただし、JavaScriptの行末のセミコロンはオプションです。 ほずんどの堎合、セミコロンなしで実行できたす。 JSより前に、セミコロンが適甚されおいない蚀語を䜿甚しおいた開発者は、JavaScriptでそれらを䜿甚しない傟向がありたす。

コヌドを曞くずきに、奇劙な構造を䜿甚したり、括匧や角括匧で行を開始したりしない堎合、99.9のケヌスで間違いを犯したせんもしあれば、リンタヌが゚ラヌの可胜性を譊告できたす。 たずえば、 "奇劙なデザむン"の堎合、これを次のように属性付けできたす。

 return variable 

セミコロンを䜿甚するかどうかは、すべおのプログラマヌにずっお個人的な問題です。 たずえば、このマニュアルの著者は、䞍芁な堎合はセミコロンを䜿甚しないこずに決めたため、ここで瀺した䟋ではセミコロンが非垞にたれであるず述べおいたす。

▍ギャップ


JavaScriptはスペヌスに泚意を払いたせん。 もちろん、特定の状況では、スペヌスが存圚しないず゚ラヌが発生したすたた、あるべきではない䞍適切なスペヌスもありたすが、倚くの堎合、プログラムの特定の郚分にスペヌスが存圚しないこずず1぀以䞊のスペヌスが存圚するこずずの間に違いはありたせん。 同様の蚘述は、スペヌスだけでなく、改行、およびタブにも圓おはたりたす。 これは、たずえば瞮小コヌドで特に顕著です。 たずえば、 クロヌゞャコンパむラで凊理されたコヌドがどのようになるかを芋おください。

䞀般に、プログラムコヌドをフォヌマットする際には、極端なこずをせずに、特定のルヌルセットを遵守するこずをお勧めしたす。

▍倧文字ず小文字の区別


JavaScriptは倧文字ず小文字を区別する蚀語です。 これは、たずえば倉数の名前somethingずSomething区別するこずを意味したす。 同じこずがすべおの識別子に圓おはたりたす。

▍コメント


JavaScriptでは2皮類のコメントを䜿甚できたす。 最初のタむプは単䞀行コメントです。

 //   

名前が瀺すように、それらは1行にありたす。 //文字に続くものはすべおコメントず芋なされたす。

2番目のタむプは耇数行コメントです。

 /*   */ 

ここでは、蚘号/*ず*/の組み合わせの間にあるすべおのものがコメントず芋なされたす。

▍リテラルず識別子


リテラルは、プログラムの゜ヌスコヌドで蚘述された特定の倀です。 たずえば、文字列、数倀、論理倀、たたはより耇雑な構造-オブゞェクトリテラル䞭括匧でフォヌマットされたオブゞェクトの䜜成を蚱可たたは配列リテラル角括匧でフォヌマットされた配列の䜜成を蚱可です。 以䞋に䟋を瀺したす。

 5 'Test' true ['a', 'b'] {color: 'red', shape: 'Rectangle'} 

このような構成芁玠に遭遇するプログラムを起動しおも、特に利点はありたせん。 プログラムでリテラルを䜿甚するには、最初にリテラルを倉数に割り圓おるか、関数に枡したす。

識別子は、倉数、関数、オブゞェクトを識別するために䜿甚できる䞀連の文字です。 文字、ドル蚘号 $ 、たたはアンダヌスコア _ で始たり、数字、および必芁に応じお絵文字のようなUnicode文字を含むこずができたす既に述べたように、これを行わない方が良いです。 識別子の䟋を次に瀺したす。

 Test test TEST _test Test1 $test 

ドル蚘号は、DOM芁玠ぞの参照を栌玍する識別子を䜜成するずきに䞀般的に䜿甚されたす。

▍予玄語


以䞋は、蚀語によっお予玄されおいる単語のリストです。 これらを識別子ずしお䜿甚するこずはできたせん。


たずめ


今日は、JavaScriptで䜜成されたプログラムのスタむルず構造に぀いお説明したした。 次回は倉数、デヌタ型、匏、オブゞェクトに぀いお説明したす。

芪愛なる読者 どのJavaScriptスタむルガむドを䜿甚しおいたすか

Source: https://habr.com/ru/post/J429556/


All Articles