需要檢查一個(gè)對(duì)象(Object)是否為空,即不包含任何元素。Javascript 中的對(duì)象就是一個(gè)字典,其中包含了一系列的鍵值對(duì)(Key Value Pair)。檢查一個(gè)對(duì)象是否為空,等價(jià)于檢查對(duì)象中有沒有鍵值對(duì)。寫成代碼,形如:
成都創(chuàng)新互聯(lián)于2013年開始,先為平桂等服務(wù)建站,平桂等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為平桂企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
if (isEmptyObject(obj)) {
// obj is empty
} else {
// not empty
}
至于 isEmptyObject 的實(shí)現(xiàn),jQuery 中有一個(gè)很有想法的方式,請(qǐng)看代碼:
function isEmptyObject(obj) {
for (var key in obj) {
return false;
}
return true;
}
盡管 Javascript 沒有原生提供 isEmpty() 方法,但它提供了迭代器,可以用來遍歷所有的鍵值對(duì)。于是 jQuery 所做的事情,就是嘗試遍歷,如果有任何一個(gè)鍵值對(duì),即說明對(duì)象非空,直接返回 false。從效率上來說,由于只讀取了一個(gè)元素,頂多加上一些跳出循環(huán)的開銷,實(shí)際性能不會(huì)比原生方法差太多。
function isNullObj(obj){
for(var i in obj){
if(obj.hasOwnProperty(i)){
return false;
}
}
return true;
}
可以使用jquery的length屬性實(shí)現(xiàn)判斷數(shù)組是否為空。
具體步驟如下:
需要準(zhǔn)備的材料分別是:電腦、瀏覽器、ultraedit。
1、在ue編輯器中新建一個(gè)空白的html文件,js文件。
2、在ue編輯器中輸入以下html代碼。
3、在ue編輯器中輸入以下js代碼。
4、編輯完成以后,在ue編輯器中點(diǎn)擊保存,格式選擇UTF8無BOM。
5、在瀏覽器中打開此html文件,可以看到最終想要實(shí)現(xiàn)的判斷數(shù)組是否為空效果。
可以通過判斷數(shù)組的長度length來判斷數(shù)組是否為空,空數(shù)組的length值為空。數(shù)組的 length 屬性總是比數(shù)組中定義的最后一個(gè)元素的下標(biāo)大 1。對(duì)于那些具有連續(xù)元素,而且以元素 0 開始的常規(guī)數(shù)組而言,屬性 length 聲明了數(shù)組中的元素的個(gè)數(shù)。數(shù)組的 length 屬性在用構(gòu)造函數(shù) Array() 創(chuàng)建數(shù)組時(shí)被初始化。給數(shù)組添加新元素時(shí),如果必要,將更新 length 的值。
設(shè)置 length 屬性可改變數(shù)組的大小。如果設(shè)置的值比其當(dāng)前值小,數(shù)組將被截?cái)?,其尾部的元素將丟失。如果設(shè)置的值比它的當(dāng)前值大,數(shù)組將增大,新的元素被添加到數(shù)組的尾部,它們的值為 undefined。
工具原料:編輯器、瀏覽器
1、如果一個(gè)數(shù)組為空則其屬性length為0否則為數(shù)組的實(shí)際長度,代碼如下:
var?a=[]
var?b=[1,2,3]
a.length
b.length
2、早console的控制臺(tái)的輸出結(jié)果如下:
3、a按照這個(gè)原理直接判斷數(shù)組的長度即可判斷數(shù)組是否為空:
if(rr.length?==?0){
console.log("數(shù)組為空");
獲取到當(dāng)前元素,if判斷value 是否 == “”;
if(?$("input").value?==?""??){
//為空時(shí)執(zhí)行
}else{
//不為空時(shí)執(zhí)行
}
//??The?Harder?You?Work,?The?Luckier?You?Will?Be.????(Jensonhui.com)
//有如下三種判斷:
var A=$("#**).val();
if(A==null||A!=undefined||A==""){
//處理
}
還有另一種更簡單的方法 測(cè)試過 可用:
var A=$("#**).val();
if(A.length0){
//非空處理
}
擴(kuò)展資料:
這里解釋一下null與undefined和”“的區(qū)別:
null:空對(duì)象\不是對(duì)象,轉(zhuǎn)為數(shù)值為0
undefined:全局對(duì)象window的一個(gè)特殊屬性.undefined表示”缺少值”,就是此處應(yīng)該有一個(gè)值,但是還沒有定義。轉(zhuǎn)為數(shù)值為NaN.典型用法是:?
(1)變量被聲明了,但沒有賦值時(shí),就等于undefined。
(2) 調(diào)用函數(shù)時(shí),應(yīng)該提供的參數(shù)沒有提供,該參數(shù)等于undefined。
(3)對(duì)象沒有賦值的屬性,該屬性的值為undefined。
(4)函數(shù)沒有返回值時(shí),默認(rèn)返回undefined。
參考資料:CSDN
// 如果是一個(gè)空對(duì)象 var obj = {}; obj == false; // true // 所以可以這樣: if (obj) { // 這個(gè)意思是把obj強(qiáng)制轉(zhuǎn)換成bool值,故會(huì)被轉(zhuǎn)成false然后在if中做判斷 // false } else { // true } // 如果obj不是一個(gè)空對(duì)象 var obj = {id: 1}; obj == true; // true // 原理同上 或者 : var obj=null; if(!obj){ //TODO:如果為空?qǐng)?zhí)行的代碼 } js 實(shí)例如下:if (typeof(obj) == undefined) {//操作語句}如果typeof(obj) == undefined 為true則該對(duì)象不存在,當(dāng)前腳本還沒有定義該對(duì)象 其他的寫法要注意: // 這種方法不起作用 if (x == undefined)//操作語句// 對(duì)象屬性不存在, 聲明了變量但從未賦值。實(shí)例:htmlbody script type=text/javascript if (typeof(ActiveXObject)==undefined) {alert(不存在ActiveXObject)}else {alert(存在ActiveXObject??!)} /script/body /html //返回的是:存在ActiveXObject,因?yàn)樵搶?duì)象是js里已經(jīng)制定的對(duì)象已經(jīng)由js定義聲明過的,只要是js制定存在的都是非 undefined 但是如果改為:typeof(ActiveXObject1)==undefined 則返回的是不存在了ActiveXObject1 另外typeof(t1)==undefined 如果這個(gè)對(duì)象不存在于該腳本范圍內(nèi),或者如果t1 是聲明的變量但是沒有初始化也就是沒有賦值兩者都會(huì)返回undefined 判斷元素是否存在: script language=javascript function changelocation(){ if(document.getElementById(payment_info)) alert('true');else alert('false');} /script