- Hands-On Machine Learning with JavaScript
- Burak Kanber
- 304字
- 2021-06-25 21:38:18
Let and const
In ES5 JavaScript, we use the var keyword to define variables. In most cases, var can simply be replaced with let, with the major difference between the two constructs being the scoping of the variable with respect to blocks. The following example from MDN web docs, or previously Mozilla Developer Network (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let), demonstrates the subtle difference between the two:
function varTest() {
var x = 1;
if (true) {
var x = 2; // same variable!
console.log(x); // 2
}
console.log(x); // 2
}
function letTest() {
let x = 1;
if (true) {
let x = 2; // different variable
console.log(x); // 2
}
console.log(x); // 1
}
So, while you must use additional caution in cases like the preceding one, in most cases you can simply replace var with let.
The const keyword, unlike let, defines a variable as a constant; that is, you cannot reassign a variable initialized with const at a later date. For example, the following code causes an error with a message similar to invalid assignment to const a:
const a = 1;
a = 2;
On the other hand the same code, using var or let to define a, would run successfully.
Note that if a is an object, you are allowed to modify object properties of a.
The following code will run successfully:
const obj = {};
obj.name = ‘My Object’;
However, attempting to redefine objects such as in obj = {name: “other object”} would cause an error.
I find that in most programming contexts, const is typically more appropriate than let, as most variables you use never need to be redefined. My recommendation is to use const as much as you can, and use let only when you have a reason to redefine the variable later.
- 32位嵌入式系統與SoC設計導論
- Visualforce Development Cookbook(Second Edition)
- Mastercam 2017數控加工自動編程經典實例(第4版)
- 機器自動化控制器原理與應用
- 21天學通ASP.NET
- 小型電動機實用設計手冊
- 機器學習流水線實戰
- 大數據平臺異常檢測分析系統的若干關鍵技術研究
- 機器人編程實戰
- Ceph:Designing and Implementing Scalable Storage Systems
- Learn CloudFormation
- Visual C++項目開發案例精粹
- 人工智能:語言智能處理
- 網絡存儲·數據備份與還原
- Visual Basic項目開發案例精粹