typeof演算演算子、オペランドによって返される結果は文字列であり、図6(のみESため、全くコンテキストオブジェクトホストを含まない)があります。
1.'undefined '
2.'boolean'
3.'string '
4.'number'
5.'object '
6.'function'
それはオペレータ自身であるので、それが使用される小型括弧を追加する必要がない機能、ではありません。
IF(typeof演算(OBJ)=== '不定'){
// ...
}
}
typeof演算の種類を決定するために使用さ、それはいくつかのピットを持っています
1.ヌルが返された「オブジェクト」ですが、ときにオブジェクトあなたが本当に使用することはできません。
OBJ =ヌルVAR
(typeof演算OBJ === 'オブジェクト'){IF
obj.a()//このエラー
}
(typeof演算OBJ === 'オブジェクト'){IF
obj.a()//このエラー
}
2. NaNのは「数」で返されていますが、算術演算のためにそれを使用することはできません。
VAR OBJ = {}
parseIntのNUM = VAR(obj.a)
IF(typeof演算NUM === '番号'){
NUM = NUM + 10 numは依然としてNaN 3を後に実行される//
}
IF(typeof演算NUM === '番号'){
NUM = NUM + 10 numは依然としてNaN 3を後に実行される//
}
3.オブジェクト、配列、定期的に区別することはできません、彼らは、操作「オブジェクト」を返します。
VAR OBJ = {}
VaRのARR = []
VAR REG = /ポップ/ gで
はconsole.log(typeof演算OBJ)// 'オブジェクト'
はconsole.log(typeof演算ARR)// 'オブジェクト'
はconsole.log(typeof演算のREG)// 'オブジェクト'
VAR REG = /ポップ/ gで
はconsole.log(typeof演算OBJ)// 'オブジェクト'
はconsole.log(typeof演算ARR)// 'オブジェクト'
はconsole.log(typeof演算のREG)// 'オブジェクト'
4. Safar5は、オブジェクトのChrome7以前のバージョンでは、定期的な「関数」に返されます。
そして最後に規範の解釈に貼り付けます