正常情况下let或者const声明的变量,是不能在重复声明的,即使是使用var也会报错,
eg:
let a = 123;
var a = 456;
错误提示:Uncaught SyntaxError: Identifier 'a' has already been declared
const C = 123;
var C = 456;
错误提示:Uncaught SyntaxError: Identifier 'a' has already been declared
参数变量是默认声明的,所以不能用let或const再次声明,
但是为什么可以使用var声明? 这里的默认声明是指什么?
eg:
函数内使用var声明参数
function foo(x = 5, y = function() { x = 2; }) {
var x = 3;
y();
console.log(x);
}
foo() // 不会报错
函数内使用let声明参数
function foo(x = 5, y = function() { x = 2; }) {
let x = 3;
y();
console.log(x);
}
foo() // 会报错 Uncaught SyntaxError: Identifier 'x' has already been declared
守着一只汪
海绵宝宝撒
FFIVE
莫回无
相关分类