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