JS物件操作(in、instanceof、delete)運算子

技術豪門發表於2020-12-29


js教程物件操作運算主要是針對物件、陣列、函式這 3 類複合型物件執行某種程式,設計的運算子包括 in、instanceof、delete。

本篇文章由 泉州SEO www.234yp.com 整理髮布,js教程 www.234yp.com/Article/188250.html 謝謝合作!

歸屬檢測

in運算子能夠檢測左側運算元是否為右側運算元的成員。其中,左側運算元是一個字串,或者可以轉換為字串的表示式,右側運算元是一個物件或陣列。

示例1

下面程式碼使用 in 運算子檢測屬性 a、b、c、valueOf 是否為物件 o 的成員。

var o = {  //定義物件
    a : 1,  //定義屬性a
    b : function() {}  //定義方法b
}
console.log("a" in o);  //返回true
console.log("b" in o);  //返回true
console.log("c" in o);  //返回false
console.log("valueOf" in o);  //返回true,繼承Object的原型方法
console.log("constructor" in o);  //返回true,繼承Object的原型屬性


instanceof運算子能夠檢測左側的物件是否為右側型別的示例。

示例2

下面程式碼使用 instanceof 檢測陣列 a 是否為 Array、Object 和 Function 的示例。

var a = new Array();  //定義陣列
console.log(a instanceof Array);  //返回true
console.log(a instanceof Object);  //返回true,Array是Object的子類
console.log(a instanceof Function);  //返回false


如果左側運算元不是物件,或者運算元不是型別函式,則返回 false。如果右側運算元不是複合型物件,則將返回錯誤。

刪除屬性

delete運算子能夠刪除指定物件的屬性、陣列元素或變數。如果刪除操作成功,則返回 true;否則返回 false。

示例1

下面程式碼使用 delete 運算子刪除物件 a 的屬性 x。

var a = {  //定義物件a
    x : 1,  //定義物件成員
    y : 2  //定義物件成員
};
console.log(a.x);  //呼叫物件成員,返回1
console.log(delete a.x);  //刪除物件成員x成功,返回true
console.log(a.x);  //返回undefined,沒有找到該物件成員


部分 JavaScript 內建成員和客戶端成員,以及使用 var 語句宣告的變數不允許刪除。

c = 1;  //初始化變數c,沒有使用var語句宣告
console.log(delete c);  //返回true,說明刪除成功
var b = 1;  //使用var語句宣告並初始化變數
console.log(delete b);  //返回false,說明不允許刪除
console.log(delete Object.constructor);  //返回true,說明部分內部成員可以被刪除

示例2

如果刪除不存在的物件成員、陣列元素、變數,則返回 true。因此,使用 delete 運算子時,要注意區分成功刪除與無效操作。

var s = {};  //定義物件a
console.log(delete a);  //返回false,說明不允許刪除
console.log(delete a.z);  //返回true,說明不存在該屬性
console.log(delete b);  //返回true,說明不存在該變數

示例3

下面程式碼使用 delete 運算子,配合 in 運算子,實現對陣列成員執行檢測、插入、刪除或更新操作。 

var a = [];  //定義陣列物件
if("x" in a){  //如果物件a中存在x 
    delete a["x"];  //則刪除成員x
}else{  //如果不存在成員x
    a["x"] = true;  //則插入成員x,併為其賦值true
}
console.log(a.x);  //返回true。檢視成員x的值
if(delete a["x"]){  //如果刪除成員x成功
    a["x"] = false;  //更新成員x的值為false
}
console.log(a.x);  //返回false。檢視成員x的值


關於更多js教程內容,可以收藏本網頁。
泉州夜網泉州新聞網是泉州新聞地區唯一的新聞入口網站

相關文章