簡單方法判斷JavaScript對象為null或者屬性為空
來源:易賢網(wǎng) 閱讀:3305 次 日期:2014-09-29 11:20:09
溫馨提示:易賢網(wǎng)小編為您整理了“簡單方法判斷JavaScript對象為null或者屬性為空”,方便廣大網(wǎng)友查閱!

首先說下null與undefined區(qū)別:

對已聲明但未初始化的和未聲明的變量執(zhí)行typeof,都返回"undefined"。

null表示一個空對象指針,typeof操作會返回"object"。

一般不顯式的把變量的值設(shè)置為undefined,但null相反,對于將要保存對象的變量,應明確的讓該變量保存null值。

?1234567 var bj; alert(bj); //"undefined" bj = null; alert(typeof bj); //"object" alert(bj == null); //true bj = {}; alert(bj == null); //false

下面兩個函數(shù)是鄧師兄給我的,感謝啊。

?123456789101112 /* * 檢測對象是否是空對象(不包含任何可讀屬性)。 * 方法既檢測對象本身的屬性,也檢測從原型繼承的屬性(因此沒有使hasOwnProperty)。 */function isEmpty(obj) { for (var name in obj) { return false; } return true; };

這里所說的空對象,到底是 {} 還是 null . 我寫了一個測試用例。

?12345678910111213141516171819202122232425 var a = {}; a.name = 'realwall'; console.log(isEmpty(a)); //false console.log(isEmpty({})); //true console.log(isEmpty(null)); //true //注意參數(shù)為null時無語法錯誤哦,即雖然不能對null空指針對象添加屬性,但可以使用for in 語句    ? /* * 檢測對象是否是空對象(不包含任何可讀屬性)。 * 方法只既檢測對象本身的屬性,不檢測從原型繼承的屬性。 */function isOwnEmpty(obj) { for(var name in obj) { if(obj.hasOwnProperty(name)) { return false; } } return true; };

{}與null的區(qū)別:

這個東西很重要。

?1234567 var a = {}; var b = null; a.name = 'realwall'; b.name = 'jim'; //這里會報錯,b為空指針對象,不能像普通對象一樣直接添加屬性。 b = a; b.name = 'jim'; //此時 a 和 b 指向同一個對象。a.name, b.name 均為'jam'

更多信息請查看IT技術(shù)專欄

更多信息請查看腳本欄目
易賢網(wǎng)手機網(wǎng)站地址:簡單方法判斷JavaScript對象為null或者屬性為空

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)