Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript if-else变量范围在js的else中显示为未定义_Javascript_Jquery_Html - Fatal编程技术网

Javascript if-else变量范围在js的else中显示为未定义

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

我正在if/else块中定义一个名为htmlar的变量。如果我在else块中注释掉变量,它将显示undefined,但是如果我不注释掉它,它将显示结果

注意:我不能将变量的范围也包含在其他变量中

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没有块作用域,它只有全局作用域和函数作用域