![](/img/trans.png)
[英]Javascript ES6 Destructuring - Identifier 'location' has already been declared
[英]Identifier location has already been declared
大家好,我是JavaScript的初学者,遇到了这样的问题:标识符位置已经声明,但是如果我将位置变量重命名为locationnn,那么它将按预期工作。 这是我使用的代码:
let city ='New York';
let country = 'USA';
let location = city +","+country;
console.log(location);
如果你尝试在浏览器控制台location
是一个全局对象,并包含有关当前URL的信息 。 当您用let location
重新声明时,会出现提示:“标识符'位置'已被声明”错误
您不能使用let
来重新声明已经在同一作用域中声明的变量。 (来源: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let#Redeclarations )请注意,这与var
配合使用-声明被简单地忽略了(但所有赋值都与仍然有效)。
位置已经在浏览器中作为全局变量存在,并且包含带有有关当前URL信息的对象。 (它通常被称为window.location
,如该MDN页面顶部所示-但window
是JS中特权的“全局对象”,并且其所有属性与同名的全局变量相同。)
因此,您无法使用let
声明全局location
变量。 它可以与var
使用,除非您的想法不同-将字符串分配给全局location
变量将重定向页面(假定该字符串是URL,否则返回404)。 因此,简短的答案是,您不应使用location
作为变量名,而应选择其他名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.