let/const あまり使ってないけど
- カテゴリ:
- JavaScript
- ブログ
- コメント数:
- Comments: 0
◆ 何度も繰り返して実行するときに再定義できないと不便
◆ var はエラーでないから楽……ということでブログは基本 var です
◆ var はエラーでないから楽……ということでブログは基本 var です
ES6 が使えるようになってしばらく経ちました
このブログでも基本は ES6 構文で IE なんて知らないスタイルです
ですが let/const だけはあまり使っていません
というのも let/const って再定義(再宣言)できないんですよね
ブログに書くようなコピペして試して 数値調節してまた試して ってことをするには不向きです
let のところは貼り付けたらエラーになるので 宣言を飛ばしてコピペすることになります
ですが 最初にまとめて全部宣言なんてことはあまりなく必要なったら作るのであちこちに定義があっておもったより大変です
また const は変わらないですが let は値が変わるので それに加えて値をリセットしないといけません
宣言文をスキップするので 宣言時と同時に初期化していたものは代入して同じ値になるようにしないといけません
数値を変えて試すので何度もコンソールで実行します
2 回目は const, let が書けないので削除して
値を戻さないといけないので
2 回目用に別のコードを用意しないといけなくて 同じコードのコピペで動かないです
さらに c は本来は変更しないので const ですが コンソールでの繰り返し実行で それ以前の値を変えたくなって b **= 2 になったり a = 3 になったりと変更したときに c を変えないといけません
なのでこのために let にして
すっごくめんどい!!!
もっと楽なのが ページリロードです
変数がリセットされるので再度貼り付けで実行できます
ただ 変数もリセットされますが リロードも多少時間がかかります
そのときに開いてるページによっては数秒ということもあります
さらにライブラリのような関数類を別に一度だけコピペして追加した上で 繰り返し試すということをしていた場合は リロードでそこも消えてしまうので関数類も毎回貼り付ける必要が出てきます
なのでリロードは避けたいです
1 回程度なら大したことじゃないのですが さっとコンソールで試したいときに毎回書くのはさすがに疲れます
これだと全く問題なくそのままコピペでおっけいです
let/const の機能は良いと思うのですが再定義でエラーというのは スクリプト言語にいらない機能だと思うんですよね
C# インタプリタでも var 繰り返し書いてもエラーないというのに……
とまぁ そんな理由で基本は var になってます
const ばかりなときもありますが それはコンソールお試し用じゃなくてちゃんと書いたところから持ってきた ということだと思ってください
このブログでは(手抜きで) var ですが ES6 を使う環境なら 基本 const ループ変数などの書き換えるつもりのところは let にしておいたほうがいいです
スコープは小さいほうがバグは減りますし const でイミュータブルにしておくことで間違った書き換えがなく 読む側も書き換わらないことが保証されていて読みやすいです
このブログで var になってるけどちゃんとしたもの作るときには var 使ったほうがいいってことじゃないですよ
このブログでも基本は ES6 構文で IE なんて知らないスタイルです
ですが let/const だけはあまり使っていません
というのも let/const って再定義(再宣言)できないんですよね
ブログに書くようなコピペして試して 数値調節してまた試して ってことをするには不向きです
let のところは貼り付けたらエラーになるので 宣言を飛ばしてコピペすることになります
ですが 最初にまとめて全部宣言なんてことはあまりなく必要なったら作るのであちこちに定義があっておもったより大変です
また const は変わらないですが let は値が変わるので それに加えて値をリセットしないといけません
宣言文をスキップするので 宣言時と同時に初期化していたものは代入して同じ値になるようにしないといけません
再定義できないのはつらい
例を出すと こういうコードがあったとしますconst a = 1
let b = 2
console.log(a + b)
b **= 3
const c = a * b
console.log(a + b + c)
let b = 2
console.log(a + b)
b **= 3
const c = a * b
console.log(a + b + c)
数値を変えて試すので何度もコンソールで実行します
2 回目は const, let が書けないので削除して
console.log(a + b)
b **= 3
console.log(a + b + c)
b **= 3
console.log(a + b + c)
値を戻さないといけないので
b = 2
console.log(a + b)
b **= 3
console.log(a + b + c)
console.log(a + b)
b **= 3
console.log(a + b + c)
2 回目用に別のコードを用意しないといけなくて 同じコードのコピペで動かないです
さらに c は本来は変更しないので const ですが コンソールでの繰り返し実行で それ以前の値を変えたくなって b **= 2 になったり a = 3 になったりと変更したときに c を変えないといけません
なのでこのために let にして
// 1 回目
const a = 1
let b = 2
console.log(a + b)
b **= 3
let c = a * b
console.log(a + b + c)
// 2回目
b = 2
console.log(a + b)
b **= 3
c = a * b
console.log(a + b + c)
const a = 1
let b = 2
console.log(a + b)
b **= 3
let c = a * b
console.log(a + b + c)
// 2回目
b = 2
console.log(a + b)
b **= 3
c = a * b
console.log(a + b + c)
すっごくめんどい!!!
ページリロード
さすがにやってられないですもっと楽なのが ページリロードです
変数がリセットされるので再度貼り付けで実行できます
ただ 変数もリセットされますが リロードも多少時間がかかります
そのときに開いてるページによっては数秒ということもあります
さらにライブラリのような関数類を別に一度だけコピペして追加した上で 繰り返し試すということをしていた場合は リロードでそこも消えてしまうので関数類も毎回貼り付ける必要が出てきます
なのでリロードは避けたいです
正攻法 { }
リロードと違ってコードを追加しないといけないですが ベストな方法は {} で囲むことだと思います{
const a = 1
let b = 2
console.log(a + b)
b **= 3
let c = a * b
console.log(a + b + c)
}
でもこれもインデントつけて {} 書いてっと面倒がありますconst a = 1
let b = 2
console.log(a + b)
b **= 3
let c = a * b
console.log(a + b + c)
}
1 回程度なら大したことじゃないのですが さっとコンソールで試したいときに毎回書くのはさすがに疲れます
var はすごかった
しかし 昔ながらの varこれだと全く問題なくそのままコピペでおっけいです
let/const の機能は良いと思うのですが再定義でエラーというのは スクリプト言語にいらない機能だと思うんですよね
C# インタプリタでも var 繰り返し書いてもエラーないというのに……
とまぁ そんな理由で基本は var になってます
const ばかりなときもありますが それはコンソールお試し用じゃなくてちゃんと書いたところから持ってきた ということだと思ってください
言いたかったことは
var が便利! という感じでまとまりそうですが 一番の言いたかったことはそこじゃないですこのブログでは(手抜きで) var ですが ES6 を使う環境なら 基本 const ループ変数などの書き換えるつもりのところは let にしておいたほうがいいです
スコープは小さいほうがバグは減りますし const でイミュータブルにしておくことで間違った書き換えがなく 読む側も書き換わらないことが保証されていて読みやすいです
このブログで var になってるけどちゃんとしたもの作るときには var 使ったほうがいいってことじゃないですよ