官术网_书友最值得收藏!

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.

主站蜘蛛池模板: 林口县| 蒙山县| 万盛区| 剑川县| 江口县| 永定县| 皋兰县| 濮阳县| 伊金霍洛旗| 通辽市| 晋宁县| 阜宁县| 定结县| 扎赉特旗| 郁南县| 任丘市| 商都县| 冀州市| 阿拉善左旗| 田阳县| 莎车县| 河曲县| 罗定市| 东兰县| 西充县| 类乌齐县| 康马县| 海晏县| 简阳市| 祁连县| 北安市| 双鸭山市| 台东市| 旬邑县| 恩施市| 新民市| 德钦县| 攀枝花市| 宾川县| 静安区| 宜宾县|