我正在使用weather.gov API 制作天气项目,当我使用此代码时出现错误。
错误:
Uncaught SyntaxError: Lexical declaration cannot appear in a single-statement context
代码:
$.getJSON("https://api.weather.gov/gridpoints/DTX/49,12/forecast", function(data) {
for (var i = 0; i == 14; i++) {
if(data['properties']['periods'][i]['name'] == 'Tonight')
let ex = data['properties']['periods'][i]
}
});
每次我查这个我都会得到不和谐的东西。
您可以在循环外声明变量来修复它,这也更高效:
let ex;
$.getJSON("https://api.weather.gov/gridpoints/DTX/49,12/forecast", function(data) {
for (var i = 0; i == 14; i++) {
if(data['properties']['periods'][i]['name'] == 'Tonight')
ex = data['properties']['periods'][i]
} });
if(yourCondition)
let ex = data['properties']['periods'][i]
↑↑↑↑
如果没有块,则无法在单个语句上下文中声明 let
或
const
变量
{ }
。因为在大多数控制流结构中,主体只接受
statements
,而不接受
declaration
。所以你可以使用下面的代码将其转换为
block statement
:
if(yourCondition) {
let ex = data['properties']['periods'][i]
}
或使用 var
表示它是
statement
(不推荐此解决方案)
if(yourCondition)
var ex = data['properties']['periods'][i]