
JavaScriptのイベント処理:クリック、フォーム入力からバブリング・デリゲーションまで
はじめに JavaScriptのイベント処理は、インタラクティブなウェブアプリケーション開発の核心です。ユーザーのクリック、フォーム入力、キーボード操作など、あ […]
リテラル(literal)とは、プログラムコード内に直接記述される固定値やデータ表現のことを指します。つまり、変数に格納する値そのものを直接コード上に書いた形式です。リテラルはデータ型ごとに異なる表記方法があります。
リテラルを理解することは、JavaScriptの基礎を学ぶ上で非常に重要です。なぜなら:
let integer = 42; // 整数リテラル
let floating = 3.14159; // 浮動小数点数リテラル
let binary = 0b1010; // 2進数リテラル (ES6)
let octal = 0o755; // 8進数リテラル (ES6)
let hex = 0xFF; // 16進数リテラル
let bigInt = 1234567890123456789012345678901234567890n; // BigIntリテラル (ES2020)
let singleQuote = '文字列'; // シングルクォート
let doubleQuote = "文字列"; // ダブルクォート
let backtick = `文字列`; // バックティック(テンプレートリテラル)
// テンプレートリテラル(ES6)
let name = "太郎";
let greeting = `こんにちは、${name}さん!`;
let isTrue = true; // 真
let isFalse = false; // 偽
let emptyArray = []; // 空配列
let numbers = [1, 2, 3, 4, 5]; // 数値配列
let mixed = [1, "text", true, { key: "value" }]; // 混合配列
let emptyObj = {}; // 空オブジェクト
let person = {
name: "山田太郎", // プロパティ
age: 30,
"favorite-color": "blue" // ハイフンを含む場合はクォートが必要
};
let regex = /pattern/flags;
let emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
let nothing = null; // 意図的な値の不在を示す
ES6で導入された複数行文字列と式埋め込みが可能なリテラル:
let multiLine = `
これは
複数行の
文字列です
`;
let calculation = `10 + 5 = ${10 + 5}`; // "10 + 5 = 15"
同じ値でも、リテラル表記とコンストラクタ呼び出しでは微妙に異なります。
// リテラル
let strLiteral = "text";
let objLiteral = {};
let arrLiteral = [];
// コンストラクタ
let strConstructor = new String("text");
let objConstructor = new Object();
let arrConstructor = new Array();
リテラル表記の方が:
console.log(typeof 42); // "number"
console.log(typeof "text"); // "string"
console.log(typeof true); // "boolean"
console.log(typeof {}); // "object"
console.log(typeof []); // "object"
console.log(typeof /pattern/); // "object"
console.log(typeof null); // "object"
console.log(typeof undefined); // "undefined"
console.log(typeof 10n); // "bigint"
console.log(typeof Symbol("sym")); // "symbol"
// 👍 推奨
`文字列 ${expression}`
// 👎 非推奨
"文字列 " + expression
const name = "太郎";
const age = 25;
// 👍 プロパティの短縮記法
const person = { name, age };
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5]; // [1, 2, 3, 4, 5]
// 👍 可読性向上
const billion = 1_000_000_000;
console.log(0.1 + 0.2); // 0.30000000000000004
const obj = { a: 1, a: 2 }; // { a: 2 }
const arr = [1, 2, 3,]; // 有効(長さは3)
// 配列リテラルと分割代入
const [first, second] = ["apple", "banana"];
// オブジェクトリテラルと分割代入
const { name, age } = { name: "太郎", age: 25 };
const prop = "color";
const obj = {
[prop]: "blue" // 動的プロパティ名
};
const obj = {
// 従来
oldMethod: function() { /* ... */ },
// ES6短縮記法
newMethod() { /* ... */ }
};
JSON(JavaScript Object Notation)はJavaScriptのオブジェクトリテラルに似た形式ですが、いくつかの違いがあります:
// JavaScriptオブジェクトリテラル
const jsObj = {
name: "太郎",
age: 25,
method() {}
};
// JSON
const jsonStr = '{"name":"太郎","age":25}'
リテラルはJavaScriptの基礎的な概念であり、コード内で直接値を表現する方法です。各種データ型ごとに異なるリテラル表現があり、ES6以降ではより強力で簡潔なリテラル構文が追加されています。リテラルを適切に使い分けることで、より読みやすく効率的なコードを書くことができます。特にテンプレートリテラルやオブジェクト/配列の短縮記法は、現代のJavaScript開発において必須の知識です。