大家好,我是JavaScript的初学者,遇到了这样的问题:标识符位置已经声明,但是如果我将位置变量重命名为locationnn,那么它将按预期工作。这是我使用的代码:
let city ='New York';
let country = 'USA';
let location = city +","+country;
console.log(location);
答案 0 :(得分:1)
如果在浏览器控制台中尝试,则mse(x_r, x_p)
是全局对象,contains the information about the current URL。当您使用location
进行重新声明时,出现提示音,提示“已声明标识符“位置””错误
答案 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
作为变量名,而应该选择其他名称。