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

資訊專欄INFORMATION COLUMN

常用的JS方法

高勝山 / 840人閱讀

一,判斷當(dāng)前元素是否是數(shù)組

1,通過(guò) constructor 判斷

function isArray(value) {
    return value && typeof value == "object" && value.constructor === Array
}

2,通過(guò) instanceof 判斷判斷

function isArray(value) {
    return value && typeof value == "object" && value instanceof Array
}

3,通過(guò) toString 判斷

function isArray(value) {
    return Array.isArray(value) || (typeof value == "object" && Object.prototype.toString.call(value) === "[object Array]")
}

4,isArray 原生方法判斷

Array.isArray()
二,判斷是否是對(duì)象
function isObject(value) {
    return value != null && typeof value === "object" && Object.prototype.toString.call(value) === "[object Object]"
}
三,判斷環(huán)境

1,判斷是否安卓

function isAndroid() {
    return /Android/i.test(navigator.userAgent) || /Linux/i.test(navigator.appVersion);
}

2,判斷是否ios

function isIOS() {
    return (/ipad|iphone/i.test(navigator.userAgent));
}

3,判斷是否是Safari

function isSafari() {
    return (/msie|applewebkit.+safari/i.test(navigator.userAgent));
}

4,判斷是否在微信

function isWeixin() {
    return /MicroMessenger/i.test(navigator.userAgent);
}

5,判斷是否為移動(dòng)端

function isMobile() {
    return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobi/i.test(navigator.userAgent) ||
        screen.width < 500;
}
四,按需加載CSS與JS
/**
 * 按需加載js
 * @param {*} path
 */
function delayLoadJS(path) {
    if (!path) {
        return Promise.reject();
    }
    return new Promise((resolve, reject) => {
        let dom = null;
        const scripts = document.querySelectorAll("script");
        for (let item of scripts) {
            if (new RegExp(path).test(item.src)) {
                dom = item;
                onload(dom, () => resolve());
                return;
            }
        }
        if (!dom) {
            const script = document.createElement("script");
            script.src = path;
            script.onload = () => {
                resolve();
                script.onload = null;
            };
            script.onerror = () => reject();
            document.body.appendChild(script);
        }
    });
}
/**
 * 按需加載css
 * @param {*} path
 */
function delayLoadCSS(path) {
    if (!path) {
        return Promise.reject();
    }
    return new Promise((resolve, reject) => {
        let dom = null;
        let links = document.querySelectorAll("link");
        for (let item of links) {
            if (new RegExp(path).test(item.href)) {
                dom = item;
                onload(dom, resolve);
                return;
            }
        }
        if (!dom) {
            const link = document.createElement("link");
            link.rel = "stylesheet";
            link.href = path;
            link.onload = () => {
                resolve();
                link.onload = null;
            };
            link.onerror = () => reject();
            document.head.appendChild(link);
        }
    });
}
/**
 * 解決同時(shí)異步加載同一個(gè)文件的問(wèn)題
 * @param {*} dom
 * @param {*} resolve
 */
function onload(dom, resolve) {
    const oldOnload = dom.onload;
    if (oldOnload) {
        dom.onload = () => {
            oldOnload();
            resolve();
        };
    } else {
        resolve();
    }
}
五,常用正則表達(dá)式

1,郵箱

function isEmail(email) {
    var r = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
    return r.test(email);
}

2,QQ

function isQQ(qq) {
    var r = /^[1-9]d{4,10}$/;
    return r.test(qq);
}

3,網(wǎng)址

function isUrl(str) {
    return /^(((ht)tps?)://)?[w-]+(.[w-]+)+([w-.,@?^=%&:/~+#]*[w-@?^=%&/~+#])?$/.test(str);
}

4,身份證

function isCard(str) {
    return /(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)/.test(str);
}

5,漢字

function isChinese(str) {
    return /^[u4e00-u9fa5]+$/.test(str);
}

6,英文

function isEnglish(str) {
    return /^[a-zA-Z]*$/.test(str);
}
六,對(duì)象的深拷貝

1,對(duì)象

// 簡(jiǎn)單粗暴,一步到位
JSON.parse(JSON.stringify(obj));

2,數(shù)組

可以用Array.slice(),Array.concat(),ES6擴(kuò)展運(yùn)算符...等方法來(lái)實(shí)現(xiàn)
七,結(jié)語(yǔ)

以上大概是目前來(lái)說(shuō)項(xiàng)目中運(yùn)用較多的一些公用方法,可能實(shí)現(xiàn)方法不是最好的,這里僅供參考。還有許多通用的方法,這里只想起這么多了,以后再慢慢補(bǔ)充吧。

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

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

相關(guān)文章

  • Webpack 常用命令總結(jié)以及常用打包壓縮方法

    摘要:全局安裝初始化默認(rèn)的文件下載插件到并在文件中加上的配置內(nèi)容對(duì)項(xiàng)目進(jìn)行打包自動(dòng)監(jiān)控文件的改變打包時(shí)顯示隱藏的模塊打包時(shí)顯示顯示詳細(xì)錯(cuò)誤信息安裝并將該配置到文件中入口出口加載器插件安裝完乘后執(zhí)行報(bào)錯(cuò),原因npminstall webpack -g // 全局安裝webpack npminit //初始化默認(rèn)的package.json文件 npminstall webpack -...

    番茄西紅柿 評(píng)論0 收藏0
  • 【underscore.js 源碼解讀】常用類型判斷以及一些有用工具方法

    摘要:最近開(kāi)始看源碼,并將源碼解讀放在了我的計(jì)劃中。今天就跟大家聊一聊中一些常用類型檢查方法,以及一些工具類的判斷方法。用是否含有屬性來(lái)判斷工具類判斷方法接下來(lái)看下一些常用的工具類判斷方法。 Why underscore 最近開(kāi)始看 underscore.js 源碼,并將 underscore.js 源碼解讀 放在了我的 2016 計(jì)劃中。 閱讀一些著名框架類庫(kù)的源碼,就好像和一個(gè)個(gè)大師對(duì)話...

    tanglijun 評(píng)論0 收藏0
  • 前端基礎(chǔ)入門五(掌握jQuery常用api,實(shí)現(xiàn)動(dòng)態(tài)效果)

    摘要:基本概念學(xué)習(xí)目標(biāo)學(xué)會(huì)如何使用,掌握的常用,能夠使用實(shí)現(xiàn)常見(jiàn)的效果。想要實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)效果,也很麻煩代碼冗余。實(shí)現(xiàn)動(dòng)畫(huà)非常簡(jiǎn)單,而且功能更加的強(qiáng)大。注意選擇器返回的是對(duì)象。 jQuery基本概念 學(xué)習(xí)目標(biāo):學(xué)會(huì)如何使用jQuery,掌握jQuery的常用api,能夠使用jQuery實(shí)現(xiàn)常見(jiàn)的效果。 為什么要學(xué)習(xí)jQuery? 【01-讓div顯示與設(shè)置內(nèi)容.html】 使用javasc...

    nevermind 評(píng)論0 收藏0
  • 前端基礎(chǔ)入門五(掌握jQuery常用api,實(shí)現(xiàn)動(dòng)態(tài)效果)

    摘要:基本概念學(xué)習(xí)目標(biāo)學(xué)會(huì)如何使用,掌握的常用,能夠使用實(shí)現(xiàn)常見(jiàn)的效果。想要實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)效果,也很麻煩代碼冗余。實(shí)現(xiàn)動(dòng)畫(huà)非常簡(jiǎn)單,而且功能更加的強(qiáng)大。注意選擇器返回的是對(duì)象。 jQuery基本概念 學(xué)習(xí)目標(biāo):學(xué)會(huì)如何使用jQuery,掌握jQuery的常用api,能夠使用jQuery實(shí)現(xiàn)常見(jiàn)的效果。 為什么要學(xué)習(xí)jQuery? 【01-讓div顯示與設(shè)置內(nèi)容.html】 使用javasc...

    codecook 評(píng)論0 收藏0
  • 前端基礎(chǔ)入門五(掌握jQuery常用api,實(shí)現(xiàn)動(dòng)態(tài)效果)

    摘要:基本概念學(xué)習(xí)目標(biāo)學(xué)會(huì)如何使用,掌握的常用,能夠使用實(shí)現(xiàn)常見(jiàn)的效果。想要實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)效果,也很麻煩代碼冗余。實(shí)現(xiàn)動(dòng)畫(huà)非常簡(jiǎn)單,而且功能更加的強(qiáng)大。注意選擇器返回的是對(duì)象。 jQuery基本概念 學(xué)習(xí)目標(biāo):學(xué)會(huì)如何使用jQuery,掌握jQuery的常用api,能夠使用jQuery實(shí)現(xiàn)常見(jiàn)的效果。 為什么要學(xué)習(xí)jQuery? 【01-讓div顯示與設(shè)置內(nèi)容.html】 使用javasc...

    WalkerXu 評(píng)論0 收藏0
  • 前端基礎(chǔ)入門五(掌握jQuery常用api,實(shí)現(xiàn)動(dòng)態(tài)效果)

    摘要:基本概念學(xué)習(xí)目標(biāo)學(xué)會(huì)如何使用,掌握的常用,能夠使用實(shí)現(xiàn)常見(jiàn)的效果。想要實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)效果,也很麻煩代碼冗余。實(shí)現(xiàn)動(dòng)畫(huà)非常簡(jiǎn)單,而且功能更加的強(qiáng)大。注意選擇器返回的是對(duì)象。 jQuery基本概念 學(xué)習(xí)目標(biāo):學(xué)會(huì)如何使用jQuery,掌握jQuery的常用api,能夠使用jQuery實(shí)現(xiàn)常見(jiàn)的效果。 為什么要學(xué)習(xí)jQuery? 【01-讓div顯示與設(shè)置內(nèi)容.html】 使用javasc...

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

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

0條評(píng)論

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