A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ja/docs/MDN/Writing_guidelines/Code_style_guide/JavaScript below:

JavaScript のサンプルコードの作成ガイドライン - MDN Web Docs

JavaScript のサンプルコードの作成ガイドライン

以下のガイドラインは MDN Web Docs の JavaScript のサンプルコードの書き方について述べたものです。この記事は、可能な限り多くの人が理解できるような簡潔な例を書くためのルールをまとめたものです。

JavaScript サンプルコードに関する一般的なガイドライン

この節では、 JavaScript のサンプルコードを書く際に留意すべき一般的なガイドラインを説明します。後の節では、より具体的な詳細について説明します。

書式の選択

正しいインデント、ホワイトスペース、行の長さに関する意見は常に論争の的となってきました。このようなトピックに関するディスカッションは、コンテンツを作成したり維持したりすることの妨げになります。

MDN Web Docs では、コードスタイルの一貫性を保つために(そしてトピック外の議論を避けるために)、コード整形ツールとして Prettier を使用しています。現在のルールについては設定ファイルを参照し、 Prettier のドキュメントを読んでください。

Prettier はすべてのコードを書式化し、スタイルの一貫性を保ちます。とはいえ、従わなければならない追加のルールがいくつかあります。

最新の JavaScript 機能の使用

Chrome、Edge、Firefox、Safari といった主要なブラウザーが対応していれば、新しい機能を使用することができます。

配列 配列の作成

配列の作成には、コンストラクターではなくリテラルを使用してください。

このようにしてください。

const visitedCities = [];

このようにしないでください。

const visitedCities = new Array(length);
項目の追加

配列に項目を追加する場合は、直接代入ではなく、 push() を使用してください。次のような配列があったとします。

次のようにしてください。

次のようにしないでください。

pets[pets.length] = "cat";
非同期メソッド

非同期コードを書くとパフォーマンスが向上するので、可能な場合は使用しましょう。具体的な方法としては、以下を使用することができます。

どちらの手法も可能な場合は、より単純な async/await 構文を使用することを推奨します。残念ながら、 ECMAScript モジュールでない限り、最上位のレベルで await を使用することはできません。 Node.js で使用する CommonJS モジュールは ES モジュールではありません。もし例があらゆる場所で使用することを意図しているのであれば、最上位の await は避けてください。

コメント

コメントは、良いコード例を書くために非常に重要です。コードの意図を明確にし、開発者がコードを理解するのに役立ちます。特に注意してください。

単一行のコメントを使用する

単一行のコメントは // でマークされ、ブロックコメントは /* … */ で囲まれます。

一般的に、コードをコメントを書くには単一の行のコメントを使用します。コメントアウトされたコードを視覚的に認識しやすくするためです。さらに、この慣例により、デバッグ中に /* … */ を使用してコードの一部をコメントアウトすることができます。

ログの出力 複数行のコメント

コメントは通常短い方が良いので、 60 ~ 80 文字で 1 行にまとめるようにしてください。それが可能でない場合は、各行の先頭に // を使用してください。

// この例は複数行のコメントです。
// 以下に続く架空の関数には、呼び出す際のいくつかの変わった制限があります。
// 制限 1
// 制限 2

/* … */ を使用しないでください。

/* この例は複数行のコメントです。
  以下に続く架空の関数には、呼び出す際のいくつかの変わった制限があります。
  制限 1
  制限 2 */
コメントを使用して省略記号を表示

例を短くするために、省略記号 (…) を使用して冗長なコードを省略することは必要です。しかし、開発者はコードに例をコピー&ペーストすることが多いので、書き手は慎重に行うべきです。

JavaScript では、省略記号 (…) はコメントに書くべきです。可能な場合は、このスニペットを再利用する人がどのようなアクションを追加するのかを示してください。

省略記号 (…) にコメントを使用することで、より明示的になり、開発者がサンプルコードをコピー&ペーストしたときのエラーを防ぐことができます。次のように書いてください。

function exampleFunc() {
  // ここにコードを追加
  // …
}

このように省略記号 (…) を使用しないでください。

function exampleFunc() {
  …
}
引数のコメントアウト

コードを書くとき、通常は不要な引数を除外します。しかしサンプルコードでは、取り得る引数を使用しなかったことを示したい場合があります。

これを行うには、引数リストに /* … */ を使用します。これは単一行コメント (//) のみを使用するというルールの例外です。

array.forEach((value /* , index, array */) => {
  // …
});
関数 関数の命名

関数名にはキャメルケースを使用し、小文字で始めてください。簡潔で、人間が読み取り可能な、適切な意味づけの名前を使用してください。

以下は関数名の正しい例です。

function sayHello() {
  console.log("Hello!");
}

このような関数名は使用しないでください。

function SayHello() {
  console.log("Hello!");
}

function doIt() {
  console.log("Hello!");
}
関数の宣言 ループと条件文 ループの初期化

ループが必要な場合は、利用可能なループ(for, for...of, while など)の中から、適切なループを選択してください。

警告: for...in を配列や文字列に使用しないでください。

メモ: forループをまったく使用しないようにすることを検討してください。 Array (または一部の操作においては String)使用している場合は、代わりに map()、every()、findIndex()、find()、includes()、その他多数のような、より意味づけされた反復処理メソッドを使用することを検討してください。

制御文

if...else 制御文には注意すべきケースがあります。もし if 文が return で終わっている場合は、 else 文を追加しないでください。

if 文のすぐ後に続けてください。次のように書いてください。

if (test) {
  // test が true の時に何かを行う
  // …
  return;
}

// test が false の時に何かを行う
// …

次のように書かないでください。

if (test) {
  // test が true の時に何かを行う
  // …
  return;
} else {
  // test が false の時に何かを行う
  // …
}
制御文やループでは中括弧を使用する

if、for、while などの制御フロー文は、コンテンツが単一の文で構成されている場合は中括弧の使用を要求されませんが、常に中括弧を使用してください。次のように書いてください。

for (const car of storedCars) {
  car.paint("red");
}

次のように書かないでください。

for (const car of storedCars) car.paint("red");

これにより、文を追加する際に中括弧を追加し忘れるのを防ぐことができます。

switch 文

switch 文は少し厄介です。

エラー処理

メモ: 回復可能なエラーだけが捕捉され、処理されるべきであるということを覚えておいてください。回復不可能なエラーはすべてスルーされ、コールスタックにバブルアップされるべきです。

オブジェクト オブジェクトの命名 オブジェクトの作成

一般的なオブジェクトを作成する場合(クラスが関与しない場合)には、コンストラクターではなくリテラルを使用してください。

このようにしてください。

このようにしないでください。

const object = new Object();
オブジェクトクラス メソッド

メソッドを定義するには、メソッド定義構文を使用してください。

const obj = {
  foo() {
    // …
  },
  bar() {
    // …
  },
};

次のようにしないでください。

const obj = {
  foo: function () {
    // …
  },
  bar: function () {
    // …
  },
};
オブジェクトプロパティ 演算子

この節では、どの演算子をいつ使用するか、私たちの推奨事項を掲載しています。

条件演算子

条件に応じてリテラルを変数に格納するためには、条件(三項)演算子を if...else 文の代わりに使用します。このルールは返値を返すときにも適用されます。次のように書いてください。

const x = condition ? 1 : 2;

次のように書かないでください。

let x;
if (condition) {
  x = 1;
} else {
  x = 2;
}

条件演算子は、情報をログ出力する文字列を作成するときに便利です。このような例では、通常の if...else 文を使用すると、ログ出力するような脇の処理のために長いコードブロックになり、この例の中心点を難読化してしまいます。

厳密等価を用いる

厳密等価(三重イコール)および不等式演算子を、緩い等価演算子(二重イコール)および不等式演算子よりも推奨します。

厳密等価演算子、不等価演算子はこのように使用します。

name === "Shilpa";
age !== 25;

以下のように、等価演算子、不等価演算子を使用しないでください。

name == "Shilpa";
age != 25;

もし == や != を使用する必要がある場合、受け入れられる用途は == null だけであることを覚えておいてください。 TypeScript は他のすべてのケースで失敗するので、サンプルコードではこれらを使用したくありません。なぜそれが必要なのかを説明するコメントを追加することを検討してください。

論理値の評価に短縮形式を使う

論理値の評価には短縮形式を使用してください。 if (x) や if (!x) を使い、 if (x === true) や if (x === false) は使わないでください。真値や偽値の種類によって処理する値が異なる場合を除きます。

文字列

文字列リテラルは 'A string' のように単一の引用符で囲むことも、"A string" のように二重引用符で囲むこともできます。 Prettier は一貫性を保ちます。

テンプレートリテラル

文字列に値を挿入する場合は、テンプレートリテラルを使用してください。

変数 変数の命名

理解しやすいコードのためには、優れた変数名が不可欠です。

メモ: 人間が読める意味のある名前を使わなくても良いのは、ループのイテレーターに i や j などを使用するような、非常に一般的に認識されている慣習が存在する場合だけです。

変数の宣言

変数や定数を宣言するときは、 let や const キーワードを使用してください。 var は使用しないでください。以下の例は、MDN Web Docs で何が推奨され、何が推奨されないかを示しています。

型変換

暗黙の型変換は避けてください。具体的な例としては、 +val による数値の変換や "" + val による文字列の変換は避けてください。代わりに new を使わずに Number() や String() を使用してください。次のように書いてください。

class Person {
  #name;
  #birthYear;

  constructor(name, year) {
    this.#name = String(name);
    this.#birthYear = Number(year);
  }
}

次のように書かないでください。

class Person {
  #name;
  #birthYear;

  constructor(name, year) {
    this.#name = "" + name;
    this.#birthYear = +year;
  }
}
避けるべき Web API

これらの JavaScript 言語の機能に加え、 Web API に関連するいくつかのガイドラインに留意することをお勧めします。

ブラウザー接頭辞を避ける

主要なブラウザー(Chrome、Edge、Firefox、Safari)がすべて対応している機能については、接頭辞をつけないでください。次のように書いてください。

const context = new AudioContext();

接頭辞による複雑さを追加するのは避けましょう。次のように書かないでください。

const AudioContext = window.AudioContext || window.webkitAudioContext;
const context = new AudioContext();

同じルールが CSS 接頭辞にも適用されます。

非推奨の API を使用しない

メソッド、プロパティ、インターフェイス全体が非推奨である場合、(そのドキュメント以外では)使用しないでください。代わりに現行の API を使用してください。

避けるべき Web API と、それを置き換えるものの非網羅的なリストを示します。

安全で信頼性の高い API を使用する 適切なログ出力メソッドを使用する 関連情報

JavaScript 言語リファレンス - JavaScript のリファレンスページを参照して、簡潔で意味のある良い JavaScript スニペットを調べてください。


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4