标识符位置已被声明

时间:2019-04-17 08:12:14

标签: javascript

大家好,我是JavaScript的初学者,遇到了这样的问题:标识符位置已经声明,但是如果我将位置变量重命名为locationnn,那么它将按预期工作。这是我使用的代码:

let city ='New York';
let country = 'USA';
let location = city +","+country;

console.log(location);

2 个答案:

答案 0 :(得分:1)

如果在浏览器控制台中尝试,则mse(x_r, x_p)是全局对象,contains the information about the current URL。当您使用location进行重新声明时,出现提示音,提示“已声明标识符“位置””错误

enter image description here

答案 1 :(得分:1)

您无法使用let重新声明已经在同一作用域中声明的变量。 (来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let#Redeclarations)请注意,这在var上可以正常使用-声明被简单地忽略了(但是伴随它的任何赋值仍然有效)。

location在浏览器中已经作为全局变量存在,并且包含带有有关当前URL信息的对象。 (最常被称为window.location,如该MDN页面顶部所示-但window是JS中特权的“全局对象”,其所有属性与全局变量相同相同的名字。)

因此,不能使用location声明全局let变量。它会与var一起使用,而不是像您想象的那样使用-为全局location变量分配一个字符串会重定向页面(假定该字符串是URL,如果不是,您只会得到404)。因此,简短的答案是您不应该使用location作为变量名,而应该选择其他名称。