Javascript——如果h2_JSON是一个对象{}(如我的console.log所示)——为什么它会落入else循环?

Javascript——如果h2_JSON是一个对象{}(如我的console.log所示)——为什么它会落入else循环?,javascript,json,Javascript,Json,任何人都知道——当我的console.log显示h2_JSON是一个对象{}时,为什么我的javascript中的逻辑会落入这个条件的ELse部分 if (h2_JSON == {}) { window.location.href ='/coursecatalog/retrieveCourses/1/' + h1key; } else { var html_output = ""; for (var key in h2_JSON) { h

任何人都知道——当我的console.log显示h2_JSON是一个对象{}时,为什么我的javascript中的逻辑会落入这个条件的ELse部分

if (h2_JSON == {})
{
window.location.href ='/coursecatalog/retrieveCourses/1/' + h1key;

}
else
{   
var html_output = "";

for (var key in h2_JSON)                
    {

   html_output += "<a href=\"javascript:gettingLevel3(\'" + h2_JSON[key] + "\')\">" + key + "</a><br />";
   console.log(html_output);        
}
}
因为foo=={}不是检查foo是否为对象的检查。它是检查foo是否为该对象的检查。但在此上下文中,{}是一个对象初始值设定项,因此没有值-甚至没有另一个空对象-与之相等:

var a = {}, b = {};
a == b; // false
条件总是错误的

如果您想查看某物是否为对象,可以使用以下技术:

if (typeof h2_JSON === 'object') {
    window.location.href ='/coursecatalog/retrieveCourses/1/' + h1key;
}
else {
    // snip
}
如何检查字典中是否没有任何内容,即没有从服务器返回数据

如果对象没有可枚举的自身属性,则该对象为空。这里是您的朋友

if (Object.keys(h2_JSON).length) {
    // it's not empty
} else {
    // it is empty
}
因为foo=={}不是检查foo是否为对象的检查。它是检查foo是否为该对象的检查。但在此上下文中,{}是一个对象初始值设定项,因此没有值-甚至没有另一个空对象-与之相等:

var a = {}, b = {};
a == b; // false
条件总是错误的

如果您想查看某物是否为对象,可以使用以下技术:

if (typeof h2_JSON === 'object') {
    window.location.href ='/coursecatalog/retrieveCourses/1/' + h1key;
}
else {
    // snip
}
如何检查字典中是否没有任何内容,即没有从服务器返回数据

如果对象没有可枚举的自身属性,则该对象为空。这里是您的朋友

if (Object.keys(h2_JSON).length) {
    // it's not empty
} else {
    // it is empty
}

这个条件到底要检查什么?因为x=={}总是错误。我试图检查h2_JSON是否没有返回任何结果,即一个空的字典-我是新来的-如果这是一个愚蠢的问题,那么很抱歉。我如何检查字典中是否没有任何内容,即没有从服务器返回数据?确切地说,该条件是什么?因为x={}总是错误的..我试图检查h2_JSON是否没有返回结果,即一个空的字典-我是新来的-如果这是一个愚蠢的问题,那么很抱歉。我如何检查字典中是否没有任何内容,即没有从服务器返回任何数据?感谢您抽出时间,非常欢迎。如果您问这个问题,当然会有所帮助他从一开始就提出了正确的问题。谢谢你抽出时间。不客气。如果你从一开始就提出正确的问题,当然会有帮助。