【りてらる】

リテラル とは?

最終更新:
💡 変数の名前と、値を直接表す表記を区別

コード中で値を直接表す表記。JavaScriptでは42や"Hello"、trueなどのほか、配列やオブジェクトを作るリテラルもある。リテラルという書き方と、値を変更できるかどうかは別。

📌 このページのポイント
一つの代入文に、名前と値の表記letcount=42;変数の名前リテラルほかの例:"Hello"、true、[1, 2]配列リテラルで作った配列もlet items = [1, 2];items[0] = 9; で変更できる
JavaScriptの例。countと42は同じ代入文の中にあります。リテラルは値を表す書き方であり、作った値が不変であることを意味しません。
ひよこ ひよこ
リテラルって何?
ペンギン先生 ペンギン先生
例えばJavaScriptのlet count = 42;では、countは変数の名前で、42が数値リテラルだよ。let greeting = "Hello";なら"Hello"が文字列リテラル。同じ代入文に、変数の名前とリテラルが一緒に登場するんだ
ひよこ ひよこ
どんな種類があるの?
ペンギン先生 ペンギン先生
JavaScriptでは数値、文字列、真偽値などのほか、[1, 2]のような配列や、{name: "A"}のようなオブジェクトを作る表記もリテラルと呼ぶよ。種類や書き方は言語によって違うので、ここではJavaScriptの例で考えよう
ひよこ ひよこ
リテラルなら中身は全部、固定の値なの?
ペンギン先生 ペンギン先生
配列リテラルの[1, count + 1]のように、式を含めることもできるよ。その要素は式を実行して決まる。コードに直接書く表記だからといって、中に含む値が全て事前に固定されるわけではないんだ
ひよこ ひよこ
テンプレートリテラルって便利そう
ペンギン先生 ペンギン先生
JavaScriptのバッククォートで囲む表記だよ。例えば`こんにちは、${name}さん!`なら、nameの値を埋め込む。${1 + 2}のような式も使えて、改行も書ける。式の結果を組み込むので、毎回同じ文字列になるとは限らないんだ
ひよこ ひよこ
リテラルとイミュータブル(不変)って関係あるの?
ペンギン先生 ペンギン先生
書き方と、作った値を変更できるかは別だよ。例えばlet items = [1, 2];で配列を作り、items[0] = 9;で要素を変更できる。「リテラルで作ったから不変」とは言えないんだ。不変かどうかは、その言語の値の種類などで判断するよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「リテラル」って出てきたら「コード中で値を直接表す表記」と思えばだいたいOK!
📖 おまけ:英語の意味
「Literal」 = 文字通りの・そのままの
💬 変数(variable)や式(expression)と対比して、「文字通りそのまま」の値を指す

参考資料

← 用語集にもどる