変数とは
ある値を保持しておくための入れ物のようなもの
変数の宣言
let a;
変数の初期化
a = "hoge";
変数の宣言と初期化を一度に
let a = "hoge";
varとlet
変数を定義するときにvar
かlet
を使うことができる
変数の宣言はコードを実行する前に処理される
var
で宣言した場合
- どこで宣言していても実行時にはコードの先頭で宣言したものと同じになる→巻き上げ(hoisting)という
- 変数を再定義することができる
let
で宣言した場合
- 巻き上げが起こらない
- 変数を再定義することができない
巻き上げや再定義が起こるとコードの可視性が悪くなるのでできるだけlet
を使う
変数の命名
一般的には英数字・アンダースコアだけ
小文字大文字を区別する
- 日本語を使うな
アラビア語で変数名ついてたらそもそも読めないよ - 絵文字を使うな
入力しづらいでしょ🤔 - 先頭にアンダースコアを使うな
一部のコンストラクターでエラーになることがある - 先頭に数字を使うな
JavaScriptだと文法エラーになる - -(ハイフン)を使うな
文法エラー - 予約語を使うな
var
とかlet
とかfunction
とかswitch
とか - camelCaseにする
lowerCamelCaseともいう 小文字大文字を間違えないようにする点でも有利
データ型
数値型(number)
- 整数値・実数値を格納できる
- データ型の宣言の必要はない
let numberOne = 1;
文字列型(string)
- 文字をシングルクォーテーション(
'
)かダブルクォーテーション("
)で囲む
let thatStrings = 'This is String';
真偽値(boolean)
- 真偽(
true
,false
)いずれかを持つ
let teaIsCute = true; //これは常に真なのであまりいい例えではない constを使うべき
let lt = 5 < 9; //変数の比較をしてフラグに使うとか console.log(lt); > true
配列(array)
- 角括弧(
[]
)内にカンマで区切って値を格納 - インデックスは0から
let memberOfShirokepu = ['うた','えりんぎ','しろる','紅茶']; console.log(memberOfShirokepu[2]); > しろる
オブジェクト(object)
- 現実のものをモデルとしたコードの構造
let teapot = { func : '紅茶を注ぐ' , contents : 0 }; console.log(teapot.func); teapot.contents+=500; console.log(teapot.contents); > 紅茶を注ぐ > 500
動的型付け
変数の宣言時の型にこだわらず実行時の実際の値によって型が動的に変化していくこと
ちなみにCは静的型付け
例:
let numberOne = '1'; typeof numberOne; // "string" numberOne = 1; typeof numberOne; // "number"
typeof
渡した変数の型を文字列で返す演算子
定数
一度宣言されると変更できない値
宣言の前にconst
をつける
constantの略
const hoursInDay = 24; hoursInDay = 240; //エラーになる
参考: https://developer.mozilla.org/ja/docs/Learn/JavaScript/First_steps/Variables