!=不比较字符串

时间:2015-10-20 23:46:57

标签: javascript jquery

我有以下代码,当我运行代码时,警告显示> undefined<但if条件无法比较字符串。

我将item.category放入新的var但没有帮助。

$.widget("custom.catcomplete", $.ui.autocomplete, {
            _create : function() {
                this._super();
                this.widget().menu("option", "items",
                        "> :not(.ui-autocomplete-category)");
            },
            _renderMenu : function(ul, items) {
                var that = this, currentCategory = "";
                $.each(items, function(index, item) {
                    var li;
                    if (item.category != currentCategory) { 
                        if(item.category != "undefined"){//it does not work!
                            alert(">" + item.category + "<"); //returns >undefined<
                            ul.append("<li class='ui-autocomplete-category'><b>"
                                    + item.category + "</b></li>");
                        }else{
                            alert("not");
                            ul.append("<li class='ui-autocomplete-category'></li>");
                        }
                        currentCategory = item.category;
                    }
                    li = that._renderItemData(ul, item);
                    if (item.category) {
                        li.attr("aria-label", item.category + " : "
                                + item.label);
                    }
                });
            }
        });

3 个答案:

答案 0 :(得分:2)

如果你想将undefined与一个用typeof得到的字符串进行比较,那么就给你一个例子

hasMany competitors

答案 1 :(得分:1)

mate,undefined是一个不是字符串的类型,

item.category != "undefined"

TO:

typeof item.category !== 'undefined'

或者:

if(item.category)
{
 //code 
} 

答案 2 :(得分:0)

item.category只是undefinedundefined值与"undefined"字符串不同。

undefined == 'undefined'; //false

但是,将undefined转换为字符串将产生"undefined"。在字符串和任何其他数据类型之间使用+运算符时,其他数据类型将首先转换为字符串。

alert(">" + item.category + "<");alert(">" + String(item.category) + "<");

基本相同

现在,如果您想知道某个变量是否未定义,您可以使用typeof运算符。

if (typeof item.category == 'undefined') { //undefined }

如果您想查看nullundefined,可以使用:

if (item.catgegory == null) { //null or undefined }