繁体   English   中英

标识符位置已被声明

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM