var和let是简单的声明符, 允许在作用域中声明变量。
让我们的工作非常像var。主要区别在于var变量的范围是整个封闭函数。
但是, 这到底意味着什么?例如 :
假设我们有10个具有10个不同id的按钮, 但它们都遵循前缀” thebutton”。
// Using VAR
for(var i=1; i<10; i++) {
$("#thebutton" + i).click(function () {
alert(i);
});
}
变量i将在按钮的单击功能范围内作为i的参考。这意味着, 如果你单击任何按钮, 该值将始终为10。
'use strict';
// We need to set use strict, because all the Block-scoped declarations (let, const, function, class) are not yet supported outside strict mode
// Using let
for(let i=1; i<10; i++) {
$("#thebutton" + i).click(function () {
alert(i);
});
}
玩这个例子:
历史是另一回事!由于let指令, 每个按钮都会连续提醒其编号。
真的很简单不是吗? let将仅在其块范围内应用!
{
// Start block
// let will be useful here !
// End Block
}
如果你还不了解, 请尝试另一个示例:
'use strict';
var country = "russia";
var a = 5;
var b = 10;
if (country === "russia") {
let a = 50; // A will be 50 only in russia !
var b = 1; // Will be applied globally, B will be change in all the world !
console.log(a); // 50
console.log(b); // 1
}
// We are outside russia !!!
console.log(a); // a will be 5 again !
console.log(b); // 1
希望本文对理解这两个语句之间的区别有所帮助。
评论前必须登录!
注册