javascript - 标识符位置已经声明

标签 javascript

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

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

console.log(location);

最佳答案

您无法使用 let 重新声明已在同一作用域中声明的变量。 (来源: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let#Redeclarations )请注意,这对于 var 效果很好 - 声明被简单地忽略(但与它一起完成的任何赋值仍然有效)。

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

因此您不能使用 let 声明全局 location 变量。它可以使用var来代替,除了不是你想象的那样 - 将字符串分配给全局location变量会重定向页面(它假设string 是一个 URL,如果不是,你只会得到 404)。因此,简短的回答是,您不应使用 location 作为变量名称,而应选择其他名称。

关于javascript - 标识符位置已经声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55722874/

相关文章:

Javascript:单击 div/form 中的按钮不执行针对它的 javascript?

javascript - 需要帮助调用倒计时函数

javascript - 验证 ssl 证书/ key 的格式

javascript - 如何外包 Node.js RESTful API 调用?

javascript - 搜索字段在 Chrome 中不起作用

javascript - 如何获取对象类型

javascript - IndexedDB 一个库从多个不同的地方使用不同的回调调用

javascript - Angular 路线不触发 Controller

javascript - 无法在表分隔符的 ul 之前插入链接

javascript - JavaScript 中的文字和实例表示法