JavaScript coding rules focus on consistently using let and const without omitting semicolons, unifying indentation and naming conventions, employing strict equality operators, and leveraging tools like ESLint and Prettier for automatic formatting and error detection, all to maintain readability, maintainability, and overall code quality.
JavaScriptには公式の「言語仕様(ECMAScript仕様)」はあるものの、「こう書かなければならない」という絶対的な記述ルールは存在しません。しかし、可読性や保守性、パフォーマンス、セキュリティなどの観点から、多くのプロジェクトやコミュニティが “推奨される” コーディングスタイルやベストプラクティスを策定しています。代表的な例としては Airbnb JavaScript Style Guide や Google JavaScript Style Guide などが挙げられます。
JavaScriptでは、大文字・小文字を厳密に使い分ける必要があります。一例を挙げると、変数を宣言(使用)するときに let というキーワードを使いますが、これはすべて半角の小文字でなければなりません。例えば、次の例では、2つの文で意味が変わるため、注意が必要です。
JavaScript
let hello = "hello"; // これ(let)は変数hello が宣言される
Let bye = "goodbye"; // これ(Let)はエラーが発生する
また、変数を宣言する際の変数名も大文字・小文字が区別されるので注意してください。例えば、次の2つの変数は、それぞれ異なるものとみなされます。
JavaScript
let val = "これは小文字の変数名です。";
let VAL = "これは大文字のため、小文字の変数とは異なる変数とみなされます。";
プログラムのコードは、基本的に半角文字を使って記述します。ダブルクォート(")で囲まれた文字列などの一部例外を除き、プログラム内で全角文字を使用することはありません。変数名では全角文字を使用できますが、不要なバグを招くため、文字列以外は半角英数字で記述するようにしたほうが良いようです。また、コードにスペースを挿入するときも、全角スペースではなく、半角スペース、またはタブを使うようにしてください。
JavaScript
let greeting = "半角英数字でコードは記述しましょう。";
let greeting = "letが全角のためエラー"; // これ(let)はエラーが発生する
let / const を優先使用する
JavaScript
// 良い例
let count = 0;
const API_URL = 'https://example.com/api';
// 悪い例(古い書き方)
var age = 20;
スコープを意識する
JavaScriptは自動セミコロン挿入(ASI: Automatic Semicolon Insertion)という仕組みをもっており、行末のセミコロンがなくても動作します。しかし、ASIに依存すると想定外の動作を引き起こす場合があるため、多くのスタイルガイドでは「行末に常にセミコロンを書く」方針が推奨されています。
JavaScript
// 推奨(セミコロンをつける)
let name = 'Taro';
console.log(name);
// 非推奨(動作はするが想定外の挙動を起こすケースあり)
let name = 'Taro'
console.log(name)
インデント
JavaScript
// スペース2つ
function greet(name) {
console.log(`Hello, ${name}`);
}
// スペース4つ
function greet(name) {
console.log(`Hello, ${name}`);
}
スペースの使い方
JavaScript
// 一般的な例
if (isValid) {
console.log('Valid!');
}
変数・関数名
JavaScript
// 良い例
let userCount = 10;
function getUserName(userId) {
// ...
}
// 悪い例
let x = 10;
function aaa(bbb) {
// ...
}
クラス名
JavaScript
class UserManager {
// ...
}
定数
JavaScript
const MAX_VALUE = 100;
通常の関数宣言
JavaScript
function greet(name) {
console.log(`Hello, ${name}`);
}
関数式
JavaScript
const greet = function(name) {
console.log(`Hello, ${name}`);
};
アロー関数式
JavaScript
const greet = (name) => {
console.log(`Hello, ${name}`);
};
if / else / for / while など
波括弧 {} は省略せずに書くことが推奨されます。ワンライナーのブロックでも{}をつけることで可読性と安全性が向上します。
JavaScript
// 推奨
if (isValid) {
doSomething();
} else {
doSomethingElse();
}
// 非推奨
if (isValid) doSomething();
else doSomethingElse();
JavaScript
// シングルクォート
const myString = 'Hello';
// ダブルクォート
const myString = "Hello";
// テンプレートリテラル
const name = 'Taro';
const greeting = `Hello, ${name}!`;
JavaScript
// 推奨
if (value === 10) {
// ...
}
// 非推奨
if (value == 10) {
// ...
}
JavaScriptのスタイルや構文エラーを機械的にチェック&修正するためのツールとして、ESLint と Prettier が広く利用されています。
これらを使うと、チーム全体でフォーマットやルールを統一できるため、可読性が大幅に向上します。
JavaScript
const user = { id: 1, name: 'Taro', age: 20 };
const { name, age } = user;
console.log(name, age); // 'Taro', 20
JavaScript
const arr1 = [1, 2, 3];
const arr2 = [4, 5];
const merged = [...arr1, ...arr2]; // [1, 2, 3, 4, 5]
JavaScript
// async/await の例
async function fetchData(url) {
try {
const response = await fetch(url);
const data = await response.json();
return data;
} catch (error) {
console.error(error);
throw error;
}
}