js的in運算子與instanceof運算子

2021-09-06 22:25:38 字數 1366 閱讀 8250

in運算子:希望他的左運算元是乙個字串或可以轉換為字串,希望他的右運算元是乙個物件。如果右運算元的物件擁有乙個名為左運算元值的屬性名,那麼表示式返回true.

var point= ;      //

定義乙個物件

"x" in point; //

返回為true;物件有乙個名為x的屬性

"z" in point; //

返回為false;物件沒有名為z的屬性

"tostring" in point //

返回true,物件繼承了tostring方法

var arr = [1,2,3]; //

擁有三個元素的陣列

"0" in arr; //

true:陣列包含元素0

1 in arr; //

true:數字轉換為字串

3 in arr; //

false:沒有索引為3的元素

instanceof運算子:希望他的左運算元是乙個物件,右運算元是標識物件的類,如果左側的物件是右側類的例項,側返回true,不是返回false。

var da = new data()     //

初始化乙個物件

da instanceof data; //

true:da是data類建立的

daa instanceof number; //

false:daa不是data類建立的

da instanceof object; //

true:因為所有的類都是繼承自object

delete是一元操作符,他用來刪除物件屬性或陣列元素。

var obs = ;

delete  obs.x;        //  刪除屬性

alert("x" in obs);     // flase:屬性不存在了

var arr = [1,"ni",2];

delete arr[1];     //   刪除編號為1的元素

alert(1 in arr);     //   編號為1的元素不存在

alert(arr.length);     //  3:執行delete刪除陣列的長度不變

並不是所有的屬性都可刪除,一些內建核心和客戶端屬性是不能刪除的,使用者通過var 定義的變數是不能夠被刪除的,通過function定義的函式和函式的引數是不能夠刪除的。

js運算子 「 」 與 「 」

運算子遵循幾個規則 如果有乙個運算元是布林值,則在比較前將其轉換為數值 false 0,true 1 true 1 true false 0 true 複製 如果有乙個運算元為字串,另乙個運算元為數值,則在比較前將字串轉換為數值 更正下應該是用number轉換 1 1 nunber 1 1 1 1 ...

JS運算子 算術運算子 比較運算子 賦值運算子

兩邊的變數都是number型別 則是單純的加法運算 當字串出現時 結果是字串型別 字串之後的內容 不論什麼型別 都會被作為字串進行拼接 例子 var num1 10 var num2 20 num num1 num2 var result num1 num2 num1 false console.l...

js中的 與 運算子

這些知識點很容易忘,所以覺得有必要把這些列出來。表示式a 表示式b 計算表示式a 也可以是函式 的運算結果,如果為 true,執行表示式b 或函式 並返回b的結果 如果為 false,返回a的結果 表示式a 表示式b 計算表示式a 也可以是函式 的運算結果,如果為 fasle,執行表示式b 或函式 ...