标识符已声明
Identifier has been declared
因为我是初学者,不知道那里发生了什么。你能 help/explain 告诉我发生了什么事吗?
它适用于除“位置”之外的所有属性,它表示:
property has been declared
'use strict';
const restaurant = {
name: 'Classico Italiano',
location: 'Via Angelo Tavanti 23, Firence, Italy',
categories: ['Italian', 'Pizzeria', 'Vegetarian', 'Organic'],
starterMenu: ['Focaccia', 'Bruschetta', 'Garlic Bread', 'Caprese Salad'],
mainMenu: ['Pizza', 'Pasta', 'Risotto'],
hello_kitty: function (two, three) {
return [this.starterMenu[two], this.mainMenu[three]];
},
};
const {location} = restaurant;
console.log(location);
如果您在浏览器的控制台中使用此代码,很自然会出现此错误,因为 location 是位置对象的保留名称,该对象包含有关当前页面的信息 URL。
参见:https://www.w3schools.com/jsref/obj_location.asp
如您的控制台所示:无法将 location
属性 分配给新变量,因为它 之前已声明 。
发生这种情况是因为您的 Javascript 运行 在一个环境(浏览器)中并且这个环境有一些变量和方法。
您可以通过以下方式查看:
console.log(window)
结果将是:
Window {0: global, window: Window, self: Window, document: document, name: '', location: Location, …}
如您所见,location 是存在于 window 对象中的预定义 属性,因此在 global scope
中声明新的 location
属性 是问题的原因。
如果您熟悉 Javascript 中的 scopes
,您可以简单地将您的代码片段包装到一个函数中以使其正常工作:
'use strict';
function logLocation(){
const restaurant = {
name: 'Classico Italiano',
location: 'Via Angelo Tavanti 23, Firence, Italy',
categories: ['Italian', 'Pizzeria', 'Vegetarian', 'Organic'],
starterMenu: ['Focaccia', 'Bruschetta', 'Garlic Bread', 'Caprese Salad'],
mainMenu: ['Pizza', 'Pasta', 'Risotto'],
hello_kitty: function (two, three) {
return [this.starterMenu[two], this.mainMenu[three]];
},
};
const {location} = restaurant;
console.log(location);
}
logLocation()
因为我是初学者,不知道那里发生了什么。你能 help/explain 告诉我发生了什么事吗?
它适用于除“位置”之外的所有属性,它表示:
property has been declared
'use strict';
const restaurant = {
name: 'Classico Italiano',
location: 'Via Angelo Tavanti 23, Firence, Italy',
categories: ['Italian', 'Pizzeria', 'Vegetarian', 'Organic'],
starterMenu: ['Focaccia', 'Bruschetta', 'Garlic Bread', 'Caprese Salad'],
mainMenu: ['Pizza', 'Pasta', 'Risotto'],
hello_kitty: function (two, three) {
return [this.starterMenu[two], this.mainMenu[three]];
},
};
const {location} = restaurant;
console.log(location);
如果您在浏览器的控制台中使用此代码,很自然会出现此错误,因为 location 是位置对象的保留名称,该对象包含有关当前页面的信息 URL。
参见:https://www.w3schools.com/jsref/obj_location.asp
如您的控制台所示:无法将 location
属性 分配给新变量,因为它 之前已声明 。
发生这种情况是因为您的 Javascript 运行 在一个环境(浏览器)中并且这个环境有一些变量和方法。
您可以通过以下方式查看:
console.log(window)
结果将是:
Window {0: global, window: Window, self: Window, document: document, name: '', location: Location, …}
如您所见,location 是存在于 window 对象中的预定义 属性,因此在 global scope
中声明新的 location
属性 是问题的原因。
如果您熟悉 Javascript 中的 scopes
,您可以简单地将您的代码片段包装到一个函数中以使其正常工作:
'use strict';
function logLocation(){
const restaurant = {
name: 'Classico Italiano',
location: 'Via Angelo Tavanti 23, Firence, Italy',
categories: ['Italian', 'Pizzeria', 'Vegetarian', 'Organic'],
starterMenu: ['Focaccia', 'Bruschetta', 'Garlic Bread', 'Caprese Salad'],
mainMenu: ['Pizza', 'Pasta', 'Risotto'],
hello_kitty: function (two, three) {
return [this.starterMenu[two], this.mainMenu[three]];
},
};
const {location} = restaurant;
console.log(location);
}
logLocation()