このナレッジノートでは、先日投稿した記事に引き続いて、kintoneのカスタマイズ開発に役立つモダンなJavaScript仕様ECMAScript 6の機能に一部について解説します。ここではlet,const宣言について解説します。
let宣言
let宣言はブロックスコープを作る変数宣言です。
let a = 1;
とすると、同じブロック内では再宣言ができず、別のブロックからは参照できなくなります。
var i = 100;
if(i > 10) {
let b = i + 10;
console.log(b); // output: 110
}
console.log(b); // output: undefined
const宣言
const宣言は宣言した変数を再代入不可にします。定数を定義するときに用いると良いですね。
こちらもブロックスコープを作り、同じブロック内では再宣言が出来ず、別ブロックからの参照は出来ません。
const a = 10;
a = 20; // TypeError
各宣言の特徴
今までのvar宣言では、変数のスコープは宣言された関数内となり、関数あるいはグローバルの一番上に宣言が巻き上げられます。
よって以下のような記述が可能です。
console.log(a); // output: 1
var a = 1;
一方let及びconstでは、宣言文より前で変数にアクセスした場合、エラーとなります。
console.log(a); // Error
let a = 1; // constでも同様
また、let及びconst宣言では同一ブロックからの再宣言が出来ないため、同じ名前の変数を別の意味合いで再宣言してしまうなどミスを避けられて非常に便利です。
ES6以降の記法が使える環境では特殊な理由がなければvarを使わず、letを使うことをおすすめします。