268香港空间

当前位置:首页 » 资料文档 » 正文

常用的JS使用方法

39人参与 来自于 : 资源分享网    2019年08月01日   分类 : 资料文档  点这评论


一,判断当前元素是否是数组

1,通过 constructor 判断

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

2,通过 instanceof 判断判断

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

3,通过 toString 判断

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

4,isArray 原生方法判断

Array.isArray()

二,判断是否是对象

function isObject(value) { return value != null && typeof value === 'object' && Object.prototype.toString.call(value) === '[object Object]' }

三,判断环境

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,判断是否为移动端

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);        }    });}
/** * 解决同时异步加载同一个文件的问题 * @param {*} dom * @param {*} resolve */ function onload(dom, resolve) { const oldOnload = dom.onload; if (oldOnload) {        dom.onload = () => {            oldOnload();            resolve();        };    } else {        resolve();    }}

五,常用正则表达式

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,网址

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);}

六,对象的深拷贝

1,对象

// 简单粗暴,一步到位 JSON.parse(JSON.stringify(obj));

2,数组

可以用Array.slice(),Array.concat(),ES6扩展运算符...等方法来实现


七,结语

以上大概是目前来说项目中运用较多的一些公用方法,可能实现方法不是最好的,这里仅供参考。还有许多通用的方法,这里只想起这么多了,以后再慢慢补充吧。


268资源分享网 , 版权所有丨本站资源仅限于学习研究,严禁从事商业或者非法活动!丨,转载请保留出处和链接!

本文链接:常用的JS使用方法来自http://www.268zy.com/pot/517.html

本文标签:JS使用方法  

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

       

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

相关文章

最新文章

资源分享网
资源分享网

网站分类

热门标签

支付宝扫码领红包

网站源码 | 营销软件 | 最新电影 | 资料文档 | 网站地图

Copyright 268资源分享网

  • 陕ICP备17018001号