JS如何处理同名的多个变量?
How JS works for multiple variables with same name?
为什么下面的代码没有语法错误?
var num = 8;
var num = 10;
console.log(num) // 10
而
var num = 8;
let num = 10;
console.log(num) // already decleared error
因为与 var 不同,不能使用 let 重新声明变量,尝试这样做会抛出语法错误:标识符已经声明。
如果您要避免像全局变量这样的反模式,那么重要的是,如果您将变量保留在范围内并使方法变小,那么您将避免重新声明变量错误……可能。
重要的是 第二点 :var 声明比 const 和 let 工作得更快,所以在循环中,如果你必须优化方法,你可以使用 var 而不是 let/const.
第一种情况将呈现为:
var num;
num = 8;
num = 10;
console.log(num); // output : 10
第二种情况将呈现为:
var num;
num = 8;
let num; // throws Uncaught SyntaxError: Identifier 'num' has already been declared
num = 10
console.log(num);
为什么下面的代码没有语法错误?
var num = 8;
var num = 10;
console.log(num) // 10
而
var num = 8;
let num = 10;
console.log(num) // already decleared error
因为与 var 不同,不能使用 let 重新声明变量,尝试这样做会抛出语法错误:标识符已经声明。 如果您要避免像全局变量这样的反模式,那么重要的是,如果您将变量保留在范围内并使方法变小,那么您将避免重新声明变量错误……可能。 重要的是 第二点 :var 声明比 const 和 let 工作得更快,所以在循环中,如果你必须优化方法,你可以使用 var 而不是 let/const.
第一种情况将呈现为:
var num;
num = 8;
num = 10;
console.log(num); // output : 10
第二种情况将呈现为:
var num;
num = 8;
let num; // throws Uncaught SyntaxError: Identifier 'num' has already been declared
num = 10
console.log(num);