需要檢查一個對象(Object)是否為空,即不包含任何元素。Javascript 中的對象就是一個字典,其中包含了一系列的鍵值對(Key Value Pair)。檢查一個對象是否為空,等價于檢查對象中有沒有鍵值對。寫成代碼,形如:
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、巴東網(wǎng)絡(luò)推廣、小程序制作、巴東網(wǎng)絡(luò)營銷、巴東企業(yè)策劃、巴東品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供巴東建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
if (isEmptyObject(obj)) {
// obj is empty
} else {
// not empty
}
至于 isEmptyObject 的實現(xiàn),jQuery 中有一個很有想法的方式,請看代碼:
function isEmptyObject(obj) {
for (var key in obj) {
return false;
}
return true;
}
盡管 Javascript 沒有原生提供 isEmpty() 方法,但它提供了迭代器,可以用來遍歷所有的鍵值對。于是 jQuery 所做的事情,就是嘗試遍歷,如果有任何一個鍵值對,即說明對象非空,直接返回 false。從效率上來說,由于只讀取了一個元素,頂多加上一些跳出循環(huán)的開銷,實際性能不會比原生方法差太多。
function isNullObj(obj){
for(var i in obj){
if(obj.hasOwnProperty(i)){
return false;
}
}
return true;
}
判斷一個對象是否為jquery對象可以用 obj instanceof jQuery
例如:
var obj = $("div");
if(obj instanceof jQuery){
alert("這是一個jQuery對象");
}else{
alert("這是一個其它對象")
}
$(".otherWeek").each(function(){
console.info(this instanceof jQuery); //false
console.info($(this) instanceof jQuery); //true
})
//使用typeof?關(guān)鍵字判定
if('function'==typeof?$('#id').thefunction)
{
alert('是個方法');
}
else?
{
alert('不是方法');
}
延伸拓展:
一、typeof?運(yùn)算符
返回一個用來表示表達(dá)式的數(shù)據(jù)類型的字符串。
typeof[()expression[]] ;
expression 參數(shù)是需要查找類型信息的任意表達(dá)式。
說明
typeof 運(yùn)算符把類型信息當(dāng)作字符串返回。typeof 返回值有六種可能:
"number," "string," "boolean," "object," "function," 和 "undefined."
typeof 語法中的圓括號是可選項
var isFunction ='function'== typeof (afunc);
和
var isFunction ='function'== typeof ?afunc;
是一樣的
二、判斷對象中是否具有指定屬性
in 運(yùn)算符 :
var?obj?=?{name:'testname'};
alert('name'?in?obj?);?//?--?true
alert('toString'?in?obj);?//?--?true
2.hasOwnProperty() 方法:
var?obj=?{name:testname};
obj.hasOwnProperty('name');?//?--?true
obj.hasOwnProperty('toString');?//?--?false
原型鏈上繼承過來的屬性無法通過hasOwnProperty檢測到,所以返回false。注意:雖然in能檢測到原型鏈的屬性,但for in通常卻不行。
使用 jQuery 對象的屬性 length 來判斷,如果大于0則表示存在,等于0則表示不存在。
jquery判斷對象是否存在代碼如下:
說明:
定義和用法
length 屬性包含 jQuery 對象中元素的數(shù)目。
語法
$(selector).length