亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript類型的判斷方法

發布時間:2020-10-15 20:12:40 來源:億速云 閱讀:113 作者:小新 欄目:web開發

這篇文章主要介紹JavaScript類型的判斷方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

                                                           本篇文章給大家帶來的內容是關于JavaScript類型判斷的方法介紹(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

JS數據類型判斷

有的時候需要判斷數據類型,應對各種復雜的邏輯判斷,先來個咱們最常用的。

1.typeof

typeof操作符返回一個字符串,并表示該變量的類型。

typeof oper / typeof (operand)

var testString = 'adus',
    testArray = [],
    testBoolean = true,
    testNumber = 0,
    testObject = {},
    testNull = null,
    testUndefined = undefined
    
console.log(typeof testString);//string
console.log(typeof testArray);//object
console.log(typeof testBoolean);//boolean
console.log(typeof testNumber);//number
console.log(typeof testObjec);//object
console.log(typeof testNull);//object
console.log(typeof testUndefined);//undefined

當然不只有上面的這些基礎類型,還有下面這些:

Symbol (ECMAScript 6 新增)    "symbol"

宿主對象(由JS環境提供)    Implementation-dependent

函數對象([[Call]] 在ECMA-262條款中實現了)    "function"

咦?有點不對,為什么數組、null等都是object呢???請往下看

Function或者Array這些類型的實例的時候,其實都是基于Object實例進行的一種擴展。只是多了一些特有屬性。

在 JavaScript 最初的實現中,JavaScript 中的值是由一個表示類型的標簽和實際數據值表示的。對象的類型標簽是 0。

由于 null 代表的是 空指針(大多數平臺下值為 0x00)。

因此,null的類型標簽也成為了 0,typeof null就錯誤的返回了"object"。(reference)

2.instanceof

instanceof運算符用于測試構造函數的prototype屬性是否出現在對象的原型鏈中的任何位置,通俗點說就是一個變量是否某個對象的實例。

object instanceof constructor

object 要檢測的對象 / constructor 構造函數

function fnc(){}
var newFnc = new fnc();
console.log(newFnc.__proto__ == fnc.prototype);//true
console.log( newFnc instanceof fnc ) //true


/*String對象和Date對象都屬于Object類型和一些特殊情況*/

var simpleStr = "This is a simple string"; 
var myString  = new String();
var newStr    = new String("String created with constructor");
var myDate    = new Date();
var myObj     = {};
var myNonObj  = Object.create(null);

simpleStr instanceof String; // 返回 false, 檢查原型鏈會找到 undefined
myString  instanceof String; // 返回 true
newStr    instanceof String; // 返回 true
myString  instanceof Object; // 返回 true

myObj instanceof Object;    // 返回 true, 盡管原型沒有定義
({})  instanceof Object;    // 返回 true, 同上
myNonObj instanceof Object; // 返回 false, 一種創建對象的方法,這種方法創建的對象不是Object的一個實例

myString instanceof Date; //返回 false

myDate instanceof Date;     // 返回 true
myDate instanceof Object;   // 返回 true
myDate instanceof String;   // 返回 false

3.Object.prototype.toString()

每個對象都有一個toString()方法,當該對象被表示為一個文本值時,或者一個對象以預期的字符串方式引用時自動調用。默認情況下,toString()方法被每個Object對象繼承。如果此方法在自定義對象中未被覆蓋,toString() 返回 "[object type]",其中type是對象的類型。

Function.prototype.call( thisArg ) / Function.prototype.apply( thisArg )

傳遞要檢查的對象作為第一個參數,稱為thisArg。

var toString = Object.prototype.toString;

toString.call(new Date); // [object Date]
toString.call(new String); // [object String]
toString.call(Math); // [object Math]

//Since JavaScript 1.8.5
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]

在合適的場景用恰當的方法,會很省心,也能保證代碼的簡潔、健壯。

以上是JavaScript類型的判斷方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潼关县| 穆棱市| 城步| 夏津县| 潮安县| 沿河| 建宁县| 嘉义县| 四川省| 突泉县| 平南县| 酒泉市| 河西区| 娄烦县| 巴林右旗| 濉溪县| 沙洋县| 武城县| 灵山县| 宁明县| 清远市| 萍乡市| 临邑县| 孙吴县| 平安县| 枣阳市| 扎鲁特旗| 佛教| 黔江区| 连江县| 仁寿县| 金秀| 芜湖县| 兰坪| 海安县| 高淳县| 鄂托克前旗| 莱西市| 尤溪县| 远安县| 麦盖提县|