成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js基礎(chǔ)(一):判斷類型

hightopo / 923人閱讀

摘要:注意類繼承時(shí)的問(wèn)題繼承自方法中對(duì)象直接繼承和間接繼承的都會(huì)報(bào)解決的問(wèn)題通常是讓對(duì)象的手動(dòng)指向自己將自己的類賦值給對(duì)象的屬性基類不會(huì)報(bào)了原博參考,,,,判斷為

js基礎(chǔ)(二):構(gòu)造函數(shù)與原型

一、常見實(shí)例 判斷是否為對(duì)象
let obj = {}

// 1.Object.prototype.toString

if (Object.prototype.toString.call(obj) === "[Object Object]") {
    console.log("對(duì)象!")
}

// 2.constructor

if (obj.constructor === Object) {
    console.log("對(duì)象!")
}

// 3.$.type() 

if ($.type(obj) === "object") {
    console.log("對(duì)象!")
}

// 4.$.isPlainObject() , 用于判斷指定參數(shù)是否是一個(gè)純粹的對(duì)象

if ($.isPlainObject(obj) === "object") {
    console.log("對(duì)象!")
}
判斷對(duì)象是否為空對(duì)象
let obj = {}

// 1.JSON

if (JSON.stringify(obj) === "{}") {
    console.log("空對(duì)象!")
}

// 2.Object.keys(), es6方法會(huì)返回一個(gè)由一個(gè)給定對(duì)象的自身可枚舉屬性組成的數(shù)組

if (Object.keys(obj).length === 0) {
    console.log("空對(duì)象!")
}

// 3.循環(huán)

for (var i in obj) { 
    return true // 不為空
}
return false // 空對(duì)象

// 4. $.isEmptyObject(), 該對(duì)象沒(méi)有屬性可以通過(guò)for...in迭代

if ($.isEmptyObject(obj)) {
    console.log("空對(duì)象!")
}
判斷是否為數(shù)組
let arr = []

// 1.Object.prototype.toString

if (Object.prototype.toString.call(arr) === "[object Array]") {
    console.log("數(shù)組!")
}

// 2.constructor

if (arr.constructor === Array) {
    console.log("數(shù)組!")
}

// 3.$.type() 

if ($.type(arr) === "array") {
    console.log("數(shù)組!")
}

// 4.Array.isArray, 當(dāng)檢測(cè)Array實(shí)例時(shí), Array.isArray 優(yōu)于 instanceof,因?yàn)锳rray.isArray能檢測(cè)iframes

if (arr instanceof Array === true) {
    console.log("數(shù)組!")
}
//Array.isArray是ES 5.1推出的,不支持IE6~8。假如不存在 Array.isArray(),則在其他代碼之前運(yùn)行下面的代碼將創(chuàng)建該方法
if (!Array.isArray) {
  Array.isArray = function(arg) {
    return Object.prototype.toString.call(arg) === "[object Array]";
  };
}

// 5.instanceof

if (arr instanceof Array === true) {
    console.log("數(shù)組!")
}
判斷是否為數(shù)組是否為空數(shù)組
let arr = []

// 1.length,簡(jiǎn)易版,已知為數(shù)組

if (arr && arr.length > 0) {
    console.log("不為空數(shù)組!")
} else {
    console.log("空數(shù)組!")
}

// 2.Object.prototype.isPrototypeOf,測(cè)試一個(gè)對(duì)象是否存在于另一個(gè)對(duì)象的原型鏈上

if (Object.prototype.isPrototypeOf(arr) && Object.keys(arr).length === 0) {
    console.log("空數(shù)組!")
}

// 3.Array.isArray,同樣存在兼容問(wèn)題

if (Array.isArray(arr) && arr.length === 0) {
    console.log("空數(shù)組!")
}
判斷字符串為json
function isJSON(str) {
    if (typeof str == "string") {
        try {
            var obj=JSON.parse(str);
            if(typeof obj == "object" && obj ){
                return true; // 可轉(zhuǎn)
            }else{
                return false;// 不可轉(zhuǎn)
            }

        } catch() {
            return false; // 不可轉(zhuǎn)
        }
    }
    console.log("It is not a string!")
}
判斷字符串是否為數(shù)字
let num = "3"

// 1.isNaN, null、空格以及空串會(huì)被按照0來(lái)處理

if ((!isNaN(num)) && num != null && num != "") {
    console.log("num為數(shù)字!")
}

// 2.正則

function isNumber(val) {
    var regPos = /^d+(.d+)?$/; //非負(fù)浮點(diǎn)數(shù)
    var regNeg = /^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //負(fù)浮點(diǎn)數(shù)
    if(regPos.test(val) || regNeg.test(val)) {
        return true;
    } else {
        return false;
    }
}
判斷某值為null或者為undefined
// jquery源碼推薦寫法,省代碼
var obj = {}
if(obj.a == null) {
    //相當(dāng)于obj.a === null || obj.a === undefined
}

二、五大常見方法 1.typeof

操作符返回一個(gè)字符串,表示未經(jīng)計(jì)算的操作數(shù)的類型,用于除null、對(duì)象和數(shù)組之外的通用類型的判斷方法

2.Object.prototype.toString

原生原型擴(kuò)展函數(shù),用來(lái)精確的區(qū)分?jǐn)?shù)據(jù)類型,萬(wàn)能

3.$.type()

用于確定JavaScript內(nèi)置對(duì)象的類型,并返回小寫形式的類型名稱,萬(wàn)能

4.instanceof

該運(yùn)算符用于測(cè)試構(gòu)造函數(shù)的prototype屬性是否出現(xiàn)在對(duì)象的原型鏈中的任何位置,用于檢測(cè)引用類型的判斷方法,針對(duì)Array和RegExp進(jìn)行判斷。

5.constructor

該屬性返回對(duì)創(chuàng)建此對(duì)象的數(shù)組函數(shù)的引用,每個(gè)具有原型的對(duì)象都會(huì)自動(dòng)獲得constructor屬性。

注意: 類繼承時(shí)的問(wèn)題

?function A(){};

 function B(){};

?A.prototype = new B(); //A繼承自B

?var aObj = new A();

?alert(aobj.constructor === B) //true;

?alert(aobj.constructor === A) //false;

//instanceof方法中對(duì)象直接繼承和間接繼承的都會(huì)報(bào)true

alert(aobj instanceof B) //true;

alert(aobj instanceof A) // true;

//解決construtor的問(wèn)題通常是讓對(duì)象的constructor手動(dòng)指向自己

aobj.constructor = A; //將自己的類賦值給對(duì)象的constructor屬性

alert(aobj.constructor === A) // true;

alert(aobj.constructor === B) // false;基類不會(huì)報(bào)true了;

原博:https://blog.csdn.net/u011684...

參考:typeof,instanceof,$.type][9],[$.isPlainObject(),判斷為json

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/109352.html

相關(guān)文章

  • Js基礎(chǔ)知識(shí)() - 變量

    摘要:內(nèi)置函數(shù)和對(duì)象中內(nèi)置了一些函數(shù)和對(duì)象,很多語(yǔ)言都會(huì)有內(nèi)置的方法,直接可以調(diào)用開發(fā)。根據(jù)語(yǔ)法標(biāo)準(zhǔn)提供的內(nèi)置函數(shù)包括和。注意基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像那是瀏覽器提供給我們的。強(qiáng)制類型轉(zhuǎn)換大家應(yīng)該都知道。 js基礎(chǔ) - 變量 *大家對(duì)js一定不會(huì)陌生,入門很簡(jiǎn)單(普通入門),很多人通過(guò)網(wǎng)絡(luò)資源、書籍、課堂等很多途徑學(xué)習(xí)js,但是有些js基礎(chǔ)的只是往往被大家遺漏,本章就從js變量...

    leone 評(píng)論0 收藏0
  • Js基礎(chǔ)知識(shí)() - 變量

    摘要:內(nèi)置函數(shù)和對(duì)象中內(nèi)置了一些函數(shù)和對(duì)象,很多語(yǔ)言都會(huì)有內(nèi)置的方法,直接可以調(diào)用開發(fā)。根據(jù)語(yǔ)法標(biāo)準(zhǔn)提供的內(nèi)置函數(shù)包括和。注意基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像那是瀏覽器提供給我們的。強(qiáng)制類型轉(zhuǎn)換大家應(yīng)該都知道。 js基礎(chǔ) - 變量 *大家對(duì)js一定不會(huì)陌生,入門很簡(jiǎn)單(普通入門),很多人通過(guò)網(wǎng)絡(luò)資源、書籍、課堂等很多途徑學(xué)習(xí)js,但是有些js基礎(chǔ)的只是往往被大家遺漏,本章就從js變量...

    MageekChiu 評(píng)論0 收藏0
  • JS基礎(chǔ)知識(shí) --變量類型和計(jì)算

    摘要:邏輯運(yùn)算判斷一個(gè)變量會(huì)被當(dāng)做還是內(nèi)置函數(shù)和對(duì)象中內(nèi)置了一些函數(shù)和對(duì)象,直接可以調(diào)用開發(fā)。根據(jù)提供的內(nèi)置函數(shù)包括和。注意基礎(chǔ)語(yǔ)法提供的內(nèi)置函數(shù)和方法只有這些,像那是瀏覽器提供給我們的。 變量類型和計(jì)算 1. 變量類型 js變量類型分為基本類型(或者叫值類型)和引用類型。(按照存儲(chǔ)方式區(qū)分)? 值類型 值類型:Number、String、Boolean、Null、Undefiend;...

    levy9527 評(píng)論0 收藏0
  • 基礎(chǔ)JS數(shù)據(jù)類型

    摘要:本文章主要總結(jié)一下數(shù)據(jù)類型的識(shí)別判斷方法最后封裝一個(gè)函數(shù),可以判別所有的類型數(shù)據(jù)類型基本類型類型該類型只有一個(gè)值,即小寫,在使用聲明變量但是未對(duì)其加以初始化時(shí),這個(gè)變量的值就是。 *本文章主要總結(jié)一下js數(shù)據(jù)類型的識(shí)別判斷方法tyoeofinstanceofObject.prototype.toString.callconstructor最后封裝一個(gè)函數(shù),可以判別所有的類型* 1.數(shù)據(jù)...

    codecook 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<