博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript有用的代码片段
阅读量:5950 次
发布时间:2019-06-19

本文共 3241 字,大约阅读时间需要 10 分钟。

JavaScript有用的代码片段

小数取整

const x = 1.234;~~x    //1x >>   //1x | 0  //1Math.floor(x)  //1const y = -1.4;x >>   //-1Math.floor(y)   //-2
按位运算符直接去掉小数,
Math.floor()向下取整,返回的数小于等于原来的数。

生成n位随机数

let getRandom = n => Math.random().toString().slice(-n);getRandom(6)   //6位随机数

生成16进制颜色

let colorCode = '#' +('00000' +(Math .random()* 0x1000000 << 0).toString(16)).slice(- 6);

n到m间随机整数

let randomNum = (n,m) => Math.floor(Math.random()*(m-n) + n);randomNum(2,10)   //2-10之间的整数
生成n到m间的随机整数,不包括m,n和m可以为负数。

驼峰命名转下划线

let humpToUnderline = str => str.match(/^[a-z][a-z0-9]+|[A-Z][a-z0-9]*/g).join('_').toLowerCase();humpToUnderline('helloWorld');  //hello_world

url参数转json

let urlToJson = url => {    let json = {};    if (!!!url) return json;    let data = url.split('?')[1] ? url.split('?')[1].split('&') : [];    for(let i=0; i

获取url中的参数

let getUrlData = name => {    let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");    let r = window.location.search.substr(1).match(reg);    if (r != null) return decodeURI(r[2]);    return null;}

n维数组转1维数组

let flatten = arr => JSON.parse(`[${JSON.stringify(arr).replace(/\[|]/g, '')}]`);let flatten = arr => arr.reduce((a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), []);let flatten = a => Array.isArray(a) ? [].concat(...a.map(flatten)) : a;flatten([1,[2,3,[3,4],5])  //[1,2,3,4,5]

n维数组展开成字符串

let arr = [1,3,[4,[72,'a','d'],3,[6,'c'],d]];arr+'';arr.toString();arr.join();JSON.stringify(arr).replace(/\[|\]/g,'');//'1,3,4,72,"a","d",3,6,"c"'

时间格式化

//时间格式化function format1(x, y) {    let i = 0;    var z = {        y: x.getFullYear(),        M: x.getMonth() + 1,        d: x.getDate(),        h: x.getHours(),        m: x.getMinutes(),        s: x.getSeconds()    };    return y.replace(/(y+|M+|d+|h+|m+|s+)/g, function(v) {        console.log(++i);        return ((v.length > 1 ? "0" : "") + eval('z.' + v.slice(-1))).slice(-(v.length > 2 ? v.length : 2))    });}format1(new Date(), 'yyyy-MM-dd h:m:s');   //2018-01-22 9:38:10

统计文字个数

//统计文字个数function wordCount(data) {  var pattern = /[a-zA-Z0-9_\u0392-\u03c9]+|[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u309f\uac00-\ud7af]+/g;  var m = data.match(pattern);  var count = 0;  if( m === null ) return count;  for (var i = 0; i < m.length; i++) {    if (m[i].charCodeAt(0) >= 0x4E00) {      count += m[i].length;    } else {      count += 1;    }  }  return count;}var text = '统计文字个数';// console.log(wordCount(text)); // 6

格式化数字

//法一function formatNum (str) {    return str.replace(/\B(?=(\d{3})+(?!\d))/g, ',');}//法二function formatNum (str) {    return str.split('').reverse().reduce((prev, next, index) => {        return ((index % 3) ? next : (next + ',')) + prev    })}

检测质数

function isPrime(n) {    return !(/^.?$|^(..+?)\1+$/).test('1'.repeat(n))}

统计字符出现的次数

function strTimes (str) {    return str.split('').reduce((p,n) => (p[n]++ || (p[n]=1) ,p), {});   }

评级

let grade = rate => "★★★★★☆☆☆☆☆".slice(5 - rate, 10 - rate);

字符串类型的数字转数字

let a = '1';+a   //1;
+a 可以理解为
Number(a),将一个变量转成数字。布尔值返回0或1,
undefined返回
NaN,数字直接返回,
null返回0,对于字符串,将其转换为十进制数值,会忽略前面的0(16进制除外),空字符串返回0,浮点数会返回浮点数值。其他格式字符串(无论是否数字开头,返回NaN,字符串中好几个小数点,返回
NaN

数组去重复

[...new Set(arr)]

更多更详细的。

获取时间戳

(new Date()).getTime();(new Date).getTime();new Date().getTime();+new Date();Date.now();

转载地址:http://xhbxx.baihongyu.com/

你可能感兴趣的文章
从日常代码质量检查工作中感受工作中的乐趣、生活的乐趣
查看>>
《Play for Java》学习笔记(三)template+Message
查看>>
2013.1.25 ccna视频笔记
查看>>
brtools备份与恢复
查看>>
Android 应用程序的结构
查看>>
USMT使用指南
查看>>
文档管理,文本编辑控件,网页Word控件,TX Text Control .NET for WPF
查看>>
我的友情链接
查看>>
Keepalived双机热备
查看>>
WINXP中添加字体的方法
查看>>
ASP.NET MVC 开源建站系统 ZKEACMS 推荐,从此网站“拼”起来
查看>>
浅析Firefox 4的改进和对3G前端开发的影响
查看>>
公司ERP服务器中勒索病毒原因事后分析
查看>>
310实验室(五)
查看>>
压缩打包介绍,gzip、bzip2、xz压缩工具
查看>>
spring test
查看>>
【SC】SCOM配置AD集成
查看>>
Java学习个人笔记
查看>>
KMP 算法(1):如何理解 KMP
查看>>
JavaScript实现登录窗口的拖拽
查看>>