回答編集履歴
2
誤字訂正
test
CHANGED
@@ -324,7 +324,7 @@
|
|
324
324
|
|
325
325
|
つまり、一言で言えば「変数」「定数」という用語が使用されている文脈が異なります。
|
326
326
|
|
327
|
-
定義上、3つすべてが変数であり、
|
327
|
+
定義上、3つすべてが変数であり、宣言上(宣言するものは)、2つが変数で1つが定数です。
|
328
328
|
|
329
329
|
|
330
330
|
|
1
追記
test
CHANGED
@@ -269,3 +269,67 @@
|
|
269
269
|
|
270
270
|
|
271
271
|
補足(1):テンプレートリテラルは、ブラウザにより対応状況が異なります。
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
---
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
## 追記(2019/3/19)
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
think49さん
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
`const`まわりは訳語や用途によって意味がややこしいのですが、自分の理解している限り以下の通りです。
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
Variable(変数) の定義([MDNより引用](https://developer.mozilla.org/en-US/docs/Glossary/Variable))
|
292
|
+
|
293
|
+
|
294
|
+
|
295
|
+
> A variable is a named location for storing a value.
|
296
|
+
|
297
|
+
|
298
|
+
|
299
|
+
-> `var`, `let`, `const`のすべてがvariable(変数)
|
300
|
+
|
301
|
+
|
302
|
+
|
303
|
+
Declarations(宣言)の定義([MDNより引用](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Declarations))
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
> var
|
308
|
+
|
309
|
+
> Declares a variable, ...
|
310
|
+
|
311
|
+
> let
|
312
|
+
|
313
|
+
> Declares a ... variable, ...
|
314
|
+
|
315
|
+
> const
|
316
|
+
|
317
|
+
> Declares a ... constant.
|
318
|
+
|
319
|
+
|
320
|
+
|
321
|
+
-> `var`, `let`はvariable(変数)、`const`は`constant`(定数)
|
322
|
+
|
323
|
+
|
324
|
+
|
325
|
+
つまり、一言で言えば「変数」「定数」という用語が使用されている文脈が異なります。
|
326
|
+
|
327
|
+
定義上、3つすべてが変数であり、使用上、2つが変数で1つが定数です。
|
328
|
+
|
329
|
+
|
330
|
+
|
331
|
+
ただ、think49さんが言う通り、`const`で宣言したものの参照は変更できませんが、参照先の中身(オブジェクトのプロパティなど)は変更可能なので、使用上も一部「変数」的な振る舞いをすると言えるかもしれません。
|
332
|
+
|
333
|
+
|
334
|
+
|
335
|
+
`Object.freeze()`や`Object.defineProperty()`でread-onlyなプロパティは作れますが、もはや「宣言」ではないので、、、
|