typeof運算子 instanceof運算子

2021-10-25 20:15:29 字數 1593 閱讀 4972

typeof是乙個一元運算子,放在其單個運算元據的前邊,運算元據可以是任何型別。返回值是乙個型別字串。typeof運算子也可以加圓括號typeof(x)這樣的它更像是乙個函式呼叫。

任意值在tyoeof運算後的返回值x

tepeof x

undefined

「undefined」

null

「object」

ture/false

「boolean」

任意數字或nan

「number」

任意字串

「string」

任意函式

「function」

任意非函式的內建物件eg:object,array…

「obejct」

typeof運算子可以用來區分原始型別和物件,但是不能用於區分物件的類,是因為所有的物件和陣列的typeof運算結果是object。如果想要區分物件的類則需要使用其他手段,例如下面的instanceof運算子,或是class的特性,constructor屬性等…

作用

instanceof運算子用來檢測建構函式原型物件是否存在於引數原型鏈上

語法

object instanceof

constructor

它希望它的左邊是乙個物件,右邊是乙個型別。如果右邊的型別的原型物件存在左邊物件的原型鏈上,返回true,反之返回false。

function

student

( fname )

;var liming =

newstudent

("liming");

liming instanceof

student

;//true 右邊的student型別的原型物件存在左邊liming物件的原型鏈上

liming instanceof

object

;//true object的原型物件是student原型物件的更上一級的父物件

student.prototype =

;liming instanceof

student

;//false 此時student的原型物件已經在上一步中被替換掉了,指向了乙個空物件,這個空物件不在 liming 的原型鏈上

注意:

如果表示式obj instanceof foo返回true,則並不意味著該表示式會永遠返回true,因為foo.prototype屬性的值有可能會改變,obj.__proto__屬性值也可能會改變,只要他們發生了變化整個表示式的結果就會發生變化。

空接合運算子, 可空型別和運算子,typeof

空接合運算子空接合運算子 提供了一種快捷方式,可以在處理可空型別和引用型別時表示null值。這個運算子放在兩個運算元之間,第乙個運算元必須是乙個可空型別或引用型別,第二個運算元必須與第乙個運算元的型別相同,或者可以隱含地轉換為第乙個運算元的型別。空接合運算子的計算如下 如果第乙個運算元不是null,...

空接合運算子, 可空型別和運算子,typeof

空接合運算子空接合運算子 提供了一種快捷方式,可以在處理可空型別和引用型別時表示null值。這個運算子放在兩個運算元之間,第乙個運算元必須是乙個可空型別或引用型別,第二個運算元必須與第乙個運算元的型別相同,或者可以隱含地轉換為第乙個運算元的型別。空接合運算子的計算如下 如果第乙個運算元不是null,...

(運算子) 運算子

運算子既可作為一元運算子也可作為二元運算子。備註 unsafe context data guid 00bf87717d88a9fac1afadb796c675da 一元 運算子返回運算元的位址 要求 unsafe 上下文 bool data guid 9efd189df2cfb88799dca08...