常用,好用的js代码
生活随笔
收集整理的這篇文章主要介紹了
常用,好用的js代码
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
記錄看到或者用到的js代碼,長(zhǎng)期更新!
判斷是否是正整數(shù)
number>>>0 === number-0解析: number-0 轉(zhuǎn)換成數(shù)字,再通過(guò)位移運(yùn)算(>>>)判斷是否跟原數(shù)字相等
補(bǔ)充,這個(gè)代碼是有范圍的,當(dāng)數(shù)字> 999999999 的時(shí)候就不成立了
原理可以參考這篇文章, 傳送門
安全檢查javascript的類型
function typeOf(o){let _toString = Object.prototype.toString;//列舉基本的數(shù)據(jù)類型和內(nèi)置的對(duì)象類型let _types = {"undefined" : "undefined","number" : "number","string" : "string","boolean" : "boolean","[object Function]" : "function","[object Array]" : "array","[object Date]" : "date","[object RegExp]" : "regExp","[object Error]" : "error"}return _types[typeof o] || _types[_toString.call(o)] || (o? "object":"null");}ps: 上述方法適用于基本的數(shù)據(jù)類型和內(nèi)置對(duì)象,而對(duì)于自定義對(duì)象是無(wú)效的。
判斷是不是數(shù)組
function isArray(arr){return Object.prototype.toString.call(arr) === '[object Array]' }判斷是不是ios系統(tǒng)
function isIOS(){let u = navigator.userAgent;let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios終端return isIOS; }轉(zhuǎn)成字符串
function toString (val) {return val == null? '': typeof val === 'object'? JSON.stringify(val, null, 2): String(val) }中劃線轉(zhuǎn)駝峰
function camelize(str){return str.replace(/-(\w)/g, function (_, c) { return c ? c.toUpperCase() : ''; }) }駝峰轉(zhuǎn)中劃線
function camelize(str){return str.replace(/\B([A-Z])/g, '-$1').toLowerCase(); }首字母大寫(xiě)
function capitalize(str){return str.charAt(0).toUpperCase() + str.slice(1); }獲取url的query,返回指定key的值
function getUrlQuery(url,key){let querys = url.split('?');if(querys.length<=1){return false;}let reg = /&?([^=]+)=([^&#]+)/g;let obj = {};querys.forEach((query,i)=>{query.replace(reg,function(re,$1,$2){obj[$1]=$2;});})if(obj[key]){return obj[key];}else if(!key){return obj;}else{return false;} }快速對(duì)數(shù)據(jù)進(jìn)行降維打擊(多維->一維)
var arr = [[1],[2]]; var arr2 = Array.prototype.concat.apply([],arr); //劃重點(diǎn) ,這個(gè)只能是二維->一維 var arr3 = arr.flat(Infinity); //多維->一維h5頁(yè)面跳轉(zhuǎn)小程序
var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)=="micromessenger"){wx.miniProgram.getEnv((res)=>{if (res.miniprogram) {// 如果在小程序環(huán)境中就跳轉(zhuǎn)wx.miniProgram.redirectTo({url: '.......'});return;}})}判斷是不是promise對(duì)象
function isPromise(val){return (val!==undefined&&val!== null &&typeof val.then === 'function' &&typeof val.catch === 'function') }軟綁定
不同于硬綁定,軟綁定可以給默認(rèn)綁定指定一個(gè)全局對(duì)象和undefined以外的值,那就可以實(shí)現(xiàn)和硬綁定相同的效果,同時(shí)保留隱式綁定或者顯式綁定修改this的能力!
if(! Function.prototype.softBind){Function.prototype.softBind = function(obj){var fn = this;var curried = [].slice.call(arguments,1);var bound = function(){return fn.apply((!this || this === (window || global)) ?obj : this,curried.concat.apply(curried,arguments));};bound.prototype = Object.create(fn.prototype);return bound;}}判斷一個(gè)字符串一定可以轉(zhuǎn)成數(shù)字
function isNumberic(n){return !Number.isNaN(parseFloat(n)) && Number.isFinite(Number(n)); }這代碼比你想象中的要難理解許多
轉(zhuǎn)載于:https://www.cnblogs.com/blogs-xlf/p/10089062.html
總結(jié)
以上是生活随笔為你收集整理的常用,好用的js代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如果恶魔给你一亿,一年之后必须还两个亿,
- 下一篇: 一个 bug ,罚款 200,我真待过这