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...