[英]“typeof” versus “in” for checking the presence of a property in an object
[英]Checking if the property exist versus checking if it is null
與檢查屬性是否為null相比,檢查JSON對象中是否存在屬性難嗎?
你們可以同時做兩個嗎?
您可以使用hasOwnProperty(prop)
來確定該屬性是否存在。
var a = { p: null };
a.p == null; // true
a.hasOwnProperty('p'); // true
檢查屬性是否存在的語法為:
if ('prop' in obj)
要么
if (obj.hasOwnProperty('prop'))
檢查屬性是否為null的語法為:
if (obj.prop === null)
通常,您不能一次完成兩項操作。 如果該屬性不存在,則obj.prop
將是undefined
,因此=== null
將為false。
但是,在許多情況下,您會先驗地知道屬性將包含哪種值。 如果您知道它的存在將始終是一個真實的值,則可以簡單地寫:
if (obj.prop)
發生這種情況的一種常見情況是,屬性始終包含一個對象。 我們可以在成語中利用這一點,例如:
if (obj && obj.prop && obj.prop.subprop && obj.prop.subprop.number == 3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.