Javascript if-else变量范围在js的else中显示为未定义
我正在if/else块中定义一个名为htmlar的变量。如果我在else块中注释掉变量,它将显示undefined,但是如果我不注释掉它,它将显示结果 注意:我不能将变量的范围也包含在其他变量中Javascript if-else变量范围在js的else中显示为未定义,javascript,jquery,html,Javascript,Jquery,Html,我正在if/else块中定义一个名为htmlar的变量。如果我在else块中注释掉变量,它将显示undefined,但是如果我不注释掉它,它将显示结果 注意:我不能将变量的范围也包含在其他变量中 coffeeAllColGenHTML : function (allData, more) { console.log("WATER" + allData.WATER); console.log("providerWATER" + allData.PRO
coffeeAllColGenHTML : function (allData, more) {
console.log("WATER" + allData.WATER);
console.log("providerWATER" + allData.PROVIDER_WATER);
if (more) {
var htmlArr = [];
htmlArr.push(allData.COFFEE_DISH, "<br/><span class='sub-detail'>", allData.WATER, "</span>");
return htmlArr.join("");
} else {
/* this line */ //var htmlArr = [];
htmlArr.push(allData.COFFEE_DISH, "<br/><span class='sub-detail'>", allData.PROVIDER_WATER, "</span>");
return htmlArr.join("");
//return allData.COFFEE_DISH;
//console.log(allData.COFFEE_DISH);
}
},
您需要确定变量声明的范围:
coffeeAllColGenHTM: function (allData, more) {
console.log("WATER" + allData.WATER);
console.log("providerWATER" + allData.PROVIDER_WATER);
var htmlArr = [];
if (more) {
htmlArr.push(allData.COFFEE_DISH, "<br/><span class='sub-detail'>", allData.WATER, "</span>");
return htmlArr.join("");
} else {
htmlArr.push(allData.COFFEE_DISH, "<br/><span class='sub-detail'>", allData.PROVIDER_WATER, "</span>");
return htmlArr.join("");
//return allData.COFFEE_DISH;
//console.log(allData.COFFEE_DISH);
}
},
这是因为您在if语句中定义了变量。javascript没有块作用域,它只有全局作用域和函数作用域