记录看到或者用到的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代码相关推荐

  1. 站长常用的200个js代码

    站长常用的200个js代码 1.文本框焦点问题 onBlur:当失去输入焦点后产生该事件 onFocus:当输入获得焦点后,产生该文件 Onchange:当文字值改变时,产生该事件 Onselect: ...

  2. 常用js代码整理、收集

    个人整理了一下个人常用到的一些js代码,以方便学习以及日后使用,或许有一些是个人之前从网上摘下来的,但是不记得是具体从哪里来的了,如果你看到有一段代码跟你的文章很相似甚至一样,请不要气愤,请告诉我,我 ...

  3. 可重复使用Tab切换代码和纯js代码

    <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content= ...

  4. 常用的js代码以及自动在线生成JavaScript工具地址

    1:数组求和使用reduce let nums = [1,22,31,4,56] let sum = nums.reduce((prev, cur) => prev + cur, 0) 2:数组 ...

  5. 常用前端JS代码与JS方法

    [返回Z平台-帮助文档-首页] Z平台的核心JS方法都存储在 /webapp/js/z.js 文件中,如果想更全面的学习Z平台的开发,建议大家熟读该文件.平台前端的核心JS方法都在这. 共用JS方法 ...

  6. JS常用正则表达式表单验证代码大汇总

    正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下: 测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或 ...

  7. jsp/html开发中常用的JS代码和页面特效代码

    1.jsp/html开发中常用的JS代码 1.后退 前进 <input type="button" value="后退" onClick="hi ...

  8. js 常用正则表达式表单验证代码

    正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下: 测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或 ...

  9. 判断是否移动端设备的JS代码,超短,百度都用它

    为什么80%的码农都做不了架构师?>>>    大多数人都使用跳转适配的方式实现PC端到移动端的网页转换,而大多数人又是使用通过判断UA的方法来区分PC端还是移动端,思路一样,但代码 ...

最新文章

  1. 干货 | AI 工程师必读,从实践的角度解析一名合格的AI工程师是怎样炼成的
  2. php在线读取pdf文件大小_怎么压缩PDF文件?快来试试这些工具!
  3. (原) ODP.NET 演示通过结果集的锁顶来更新 LOB 数据
  4. win7删除控制面板中的JAVA”
  5. SQLite中利用事务处理优化DB操作
  6. dos导入mysql数据库表_用DOS命令在Linux下mysql数据库的导入导出操作
  7. 百亿身家中年男子告别房地产转行学Python,我们推荐他读这6本书
  8. 再延期!曝华为P50六月发布
  9. C#探秘系列(八)WPF数据绑定
  10. 神经网络绘图工具-总结
  11. Ubuntu18.04安装gcc——史上最全安装教程
  12. 扩展欧几里得算法推导
  13. C++汽车4S店管理系统
  14. SCPM供应链管理专业证书知多少
  15. namespace is terminated
  16. dispatch(dispatched)
  17. 高情商的人都在这样表现汇报工作
  18. 西游记中四大菩萨的坐骑
  19. 撸了一个「合成大西瓜」
  20. 线上实时监测推广效果,App投放渠道数据分析

热门文章

  1. springMVC简单实例
  2. 问答项目---登陆也要做验证!(JS和PHP验证)
  3. 复杂多边形光栅化算法
  4. 经典算法题每日演练——第十题 树状数组
  5. 关于文件透明加密解密
  6. t test formula
  7. 为什么一定要好好睡觉?
  8. 雅思听力的词语练习打字!!!
  9. 领英上面的experience和project的区别
  10. IOS FRAMEWORK,动态库 等几个问题