var,let,const
ECMAScript 2015 (ES6)から、letとconstが加わり、
letはvarに代わるブロックスコープに対応した変数定義用、今後varは非推奨になるのでletを使うべき
constはブロックスコープに対応した定数定義用
再代入
var,letは再代入可能、constは不可
var testVar = '1回目の代入';
testVar = '2回目の代入';
console.log(testVar);
再宣言
varは再宣言可能、let,constは不可
var testVar = '1回目の宣言';
var testVar = '2回目の宣言';
console.log(testVar);
ブロックスコープ
let、constはブロックスコープに対応、varはしていない。
関数定義
出典:【JavaScript】関数定義いろいろ
主に次の3種類
関数コンストラクタ
あまり使うべきではないらしい
var addConstructor = new Function('x', 'y', 'return x + y');
console.log(addConstructor(1,2)); // 出力:3
関数式(関数リテラル)
無名関数を使用したもっとも使われる形
var addres = function (x, y) {
return x + y;
};
console.log(addres(1, 2)); // 出力:3
関数名をつけると再帰が可能になる
let addres = function hoge(x) {
console.log(x);
x--;
if(x<0){return;}
hoge(x);
};
addres(5); // 出力:5 4 3 2 1 0
関数宣言
関数式とほぼ同じだが、「ホイスト」が行われているのが特徴
つまり関数宣言の前に関数呼び出しが可能
console.log(add(1, 2)); // 出力:3
function add(x, y) {
return x + y;
};