平時資料型別都是清晰明了的,但有些功能函式還是需要用到型別檢測,現總結一下幾種常見的型別檢測方式:
typeof通常只記得適合基本型別,instanceof
object.prototype.tostring
不要忘了還有函式物件
還有只能大致判斷的object相關的
還有乙個非主流的null
那麼多個object,誰是誰呢?
a instanceof b:
a: 基本型別就直接gg,false,必須是個物件
b:要麼是個物件,要麼是個建構函式
跨平台iframe、不同window一樣gg;
代表是a的原型鏈上是否有b的prtotype屬性(有點拗口,用lol簡單點就是判斷英雄a(歐巴馬)有沒有b(破敗)的被動來判斷是否已經買了b(破敗),好吧也不太準確詞窮)
所以說這個null有點日怪;
instanceof最主要的還是判斷這個原型鏈上的關係:
這個是親生的
也許你會想這樣
因為這是個假老王,
好吧,來個借腹生子的,
關鍵在於改變了ls.__proto__的指向
怎麼生一窩呢?
還是把構造器弄回來吧
太懶了,箭頭都不想打了
原型鏈倒數第二層object上的方法,原型鏈沒有__proto__就沒有再下一層了,再找是null了
這個在ie678還是不撐頭,null和undefined還會返回"[object object]";
Socket常用幾種型別
socket是一組程式設計介面 api 是對tcp ip協議的封裝和應用。介於傳輸層和應用層,大致駐留在 osi 模型的會話層,向應用層提供統一的程式設計介面。應用層不必了解tcp ip協議細節。直接通過對socket介面函式的呼叫完成資料在ip網路的傳輸。基於傳輸層差異,4種型別的socket 1...
JS關於資料型別檢測的幾種方式
js中我們只用乙個var就能定義所有型別的變數,非常方便,但是也同樣給我們造成了困擾,如果我們想知道乙個函式的返回值是什麼型別的,或者輸入的資訊是什麼型別的時候就要通過對資料進行檢測,所以我們該如何進行資料型別的檢測呢?資料型別檢測方式 typeof typeof 用來檢測資料型別的運算子 使用方式...
JS中檢測資料型別的幾種方式
判斷js中的資料型別有一下幾種方法 typeof instanceof constructor prototype type jquery.type 接下來主要比較一下這幾種方法的異同。var a iamstring.var b 222 var c 1 2,3 var d newdate vare ...