国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

javascript基礎之判斷變量類型

jsdt / 3093人閱讀

摘要:判斷變量類型數據類型種操作符可能返回的值如下注意的能力有限,其對于類型返回的都是使用場景區分對象和原始類型要區分一種對象類型和另一種對象類型可以使用運算符或對象屬性運算符用法左邊的運算數是一個右邊運算數是對象類的名字或者構造函數返回或如果是

判斷變量類型

javaSctipt數據類型7種: Number, String, Boolean, Null, Undefined, Object, Symbol

typeof操作符

可能返回的值如下

undefined

boolean

string

number

object

function

注意: typeof 的能力有限,其對于null, Date、RegExp類型返回的都是"object"

typeof null // "object"
typeof {}; // "object" 
typeof []; // "object" 
typeof new Date(); // "object"

使用場景:區分對象和原始類型,要區分一種對象類型和另一種對象類型,可以使用: instanceof運算符或對象contructor屬性

instanceof運算符

用法: 左邊的運算數是一個object,右邊運算數是對象類的名字或者構造函數;返回true或false

[] instanceof Array; // true
[] instanceof Object; // true
[] instanceof RegExp; // false
new Date instanceof Date; // true

如果object是class或者構造函數的實例,則返回true,如果不是或者是null也返回false
instanceof運算符判斷是否為數組類型

function isArray(arr){ 
  return arr instanceof Array; 
}
contructor屬性

所有的對象都有一個constructor屬性,指向該對象的基本對啊性構造函數類型的屬性

var a = new Array;
a.constructor === Array // true

var n = new Number(3);
n.constructor === Number; // true

判斷為數組還可以這樣

function isArray(arr){ 
  return typeof arr === "object" && arr.constructor === Array; 
}
Object.ProtoType.toString()

每個對象都有一個toString()方法,返回"[object type]",其中type是對象的類型
當執行該方法時,執行以下步驟
1,獲取對象的class屬性
2,連接字符串 "[object "+結果1+"]" ;

所以可以通過toString()來獲取每個對象的類型,為了每個對象都可以通過Object.protoType.toString()來檢測,需要以Funciton.prototype.call()或Function.prototype.apply()的形式來調用,傳遞要檢查的對象作為第一個參數,稱為thisArg

Object.prototype.toString.call(new Date); // "[object Date]"
Object.prototype.toString.call([]); // "[object Array]"
Object.prototype.toString.call(/reg/ig); // "[object RegExp]"
參考

JavaScript中判斷對象類型的幾種方法總結

About

github
blog

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/90065.html

相關文章

  • 溫故知新JS基礎

    摘要:訪問屬性是通過操作符完成的,但這要求屬性名必須是一個有效的變量名小紅的屬性名不是一個有效的變量,就需要用括起來。閉包應用封裝私有變量箭頭函數箭頭函數相當于匿名函數,并且簡化了函數定義。 數據類型 NAN NaN === NaN; // false 唯一能判斷NaN的方法是通過isNaN()函數: isNaN(NaN); // true 浮點數的相等比較: 1 / 3 === (...

    Dr_Noooo 評論0 收藏0
  • javascript 基礎類型轉換

    摘要:類型轉換和表示一個空對象。如果有其他類型想轉換為或者類型,直接賦值就可以了。都能隱式的把數據類型轉為類型。。。時間時間二數字類型轉換為字符串默認是進制是一個對象類型,所以其他類型轉化為通常都是。 前言 javaScript是一門可以自由進行數據類型轉換的編程語言,類型轉換是javaScript很重要的特色(坑點很多!!!),大家想以后寫出更多嚴謹的代碼(少出一些莫名其妙的Bug),還是...

    timger 評論0 收藏0
  • JS基礎常用小技巧和知識總結(一)

    摘要:如果有一方是布爾值,則轉換為,轉換為,再進行判斷。等同運算符類型不同返回類型相同如果同為數字字符串則比較值如果同為布爾值,相同則為不同為如果兩個操作數同為引用類型,且引用的為同一個對象函數,數組,則相同。 本文主要記錄平時開發遇到的知識點和小技巧 相等判斷(==) 類型相同: 判斷其值是否相同 類型不同: 1. 如果數字和字符串比較, 則字符串會被隱式轉換為數字,在做判斷。 2....

    dadong 評論0 收藏0
  • 談談javascript語法里一些難點問題(一)

    摘要:引子前不久我建立的技術群里一位問了一個這樣的問題,她貼出的代碼如下所示執行結果如下所示第一個第二個這是一個令人詫異的結果,為什么第一個彈出框顯示的是,而不是呢這種疑惑的原理我描述如下一個頁面里直接定義在標簽下的變量是全局變量即屬于對象的變量 1) 引子 前不久我建立的技術群里一位MM問了一個這樣的問題,她貼出的代碼如下所示: var a = 1; function hehe...

    huaixiaoz 評論0 收藏0
  • 【進階1-3期】JavaScript深入內存空間詳細圖解

    摘要:進階期理解中的執行上下文和執行棧進階期深入之執行上下文棧和變量對象但是今天補充一個知識點某些情況下,調用堆棧中函數調用的數量超出了調用堆棧的實際大小,瀏覽器會拋出一個錯誤終止運行。 (關注福利,關注本公眾號回復[資料]領取優質前端視頻,包括Vue、React、Node源碼和實戰、面試指導) 本周正式開始前端進階的第一期,本周的主題是調用堆棧,今天是第3天。 本計劃一共28期,每期重點攻...

    coordinate35 評論0 收藏0

發表評論

0條評論

jsdt

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<