JavaScriptのconstについて。変更不可だけど変えられる場合があってウンヌンカンヌン・・・
今時のJavaScriptのconstについてMDNの内容を確認。
> const My_FAV = 7;
undefined
> My_FAV = 20; //エラーになる
TypeError: Assignment to constant variable.
> console.log("私の好きな数字です:" + My_FAV); //7が出力される
私の好きな数字です:7
> const My_FAV = 30 //エラーになる
SyntaxError: Identifier 'My_FAV' has already been declared
// ブロックスコープ
// スコープ内はOK
> if (My_FAV === 7){
... const My_FAV = 20;
... console.log("私の好きな数字は:" + My_FAV);
... }
私の好きな数字は:20
// varを使うとグローバルになるからダメ
> if (My_FAV === 7){
... const My_FAV = 20;
... console.log("私の好きな数字は:" + My_FAV);
... var My_FAV = 20;
... }
var My_FAV = 20;
^SyntaxError: Identifier 'My_FAV' has already been declared
// グローバルだと7のまま
> console.log("私の好きな数字は " + My_FAV + " です。");
私の好きな数字は 7 です。// オブジェクトについて
> const MY_OBJ = {"key": "value"};// 上書きはエラー
> MY_OBJ = {"OTHER_KEY": "value"};
TypeError: Assignment to constant variable.// キーは保護対象外なので変更可能
> MY_OBJ.key = "otherVALUE";
'otherVALUE'
> MY_OBJ
{ key: 'otherVALUE' }
// キーも同様かな
> MY_OBJ.key2 = "value2";
'value2'
> MY_OBJ
{ key: 'otherVALUE', key2: 'value2' }// 配列も同様
> const MY_ARRAY = [];
// pushすれば値が入る
> MY_ARRAY.push("AAA");
> MY_ARRAY
[ 'AAA' ]
> MY_ARRAY = ["B"];
TypeError: Assignment to constant variable.
// キーを指定すれば変更可能
> MY_ARRAY[0] = "C";
'C'
> MY_ARRAY
[ 'C' ]
詳しくはconst - JavaScript | MDNを見て確認しよう。
改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで
- 作者: 山田祥寛
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/30
- メディア: 大型本
- この商品を含むブログを見る
いちばんやさしいJavaScriptの教本 人気講師が教えるWebプログラミング入門(「いちばんやさしい教本」シリーズ)
- 作者: 岩田宇史
- 出版社/メーカー: インプレス
- 発売日: 2017/03/27
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る