Javascript 什么';s jquery中`$(未定义)`的返回值

Javascript 什么';s jquery中`$(未定义)`的返回值,javascript,jquery,Javascript,Jquery,$(未定义)的返回值是对象或数组还是什么 $的主体: return new jQuery.fn.init( selector, context, rootjQuery ); jQuery.fn.init的粒子体是: // HANDLE: $(""), $(null), $(undefined), $(false) if ( !selector ) { return this; } 我的理解是: return new jQuery.fn.init( sel

$(未定义)
的返回值是对象或数组还是什么

$
的主体:

  return new jQuery.fn.init( selector, context, rootjQuery );
jQuery.fn.init的粒子体是:

  // HANDLE: $(""), $(null), $(undefined), $(false)
  if ( !selector ) {
          return this;
  }
我的理解是:

 return new jQuery.fn.init( selector, context, rootjQuery );
            ~~~~~~~~~~
                ^
                |
               this?
不,它与一起使用,所以
jQuery.fn.
不重要。重要的是它的
.prototype
,即
jQuery.fn
。有关详细信息,请参阅

那么
$(未定义)
的返回值是多少


它是从jQuery的原型继承的空对象,因此与
对象相同。create($.fn)

结果是一个jQuery对象,它不包含任何匹配的DOM元素;i、 e.一个“空”jQuery对象。

$(未定义)
将返回一个带有选择器的jQuery实例

请使用以下代码亲自尝试:

var output = '';
var jq = $(undefined);

for(var x in jq) {
    output += x + ' => "' + jq[x].toString() + '"' + "\n";
}

alert(output);


示例输出有点像这样:

否,空字符串实际上不是选择器-它的处理方式类似于
未定义的
:-),因此
$(未定义的)
未定义的
截断为
?它们都将被视为“无选择器”-结果甚至不是空集合(具有
length
0、
context
selector
properties)但为空对象,没有任何属性。