JS 与 trick 的代码怎么用

网友投稿 224 2024-06-14

JS 与 trick 的代码怎么用

这次给大家带来JS与trick的代码,使用JS与trick的代码的注意事项有哪些,下面就是实战案例,一起来看一下。

浮点数取整

const x = 123.4545;

x >> 0; // 123

~~x; // 123

x | 0; // 123

Math.floor(x); // 123

-

注意:前三种方法只适用于32个位整数,对于负数的处理上和 Math.floor是不同的。

Math.floor(-12.53); // -13

-12.53 | 0; // -12

生成6位数字验证码

// 方法一

('000000' + Math.floor(Math.random() * 999999)).slice(-6);

// 方法二

Math.random().toString().slice(-6);

// 方法三

Math.random().toFixed(6).slice(-6);

// 方法四

'' + Math.floor(Math.random() * 999999);

16进制颜色代码生成

(function() {

return '#'+('00000'+

(Math.random()*0x1000000<p style="text-align: left;"><span style="color: #ff0000"><strong>驼峰命名转下划线</strong></span></p><pre class="brush:php;toolbar:false">'componentMapModelRegistry'.match(/^[a-z][a-z0-9]+|[A-Z][a-z0-9]*/g).join('_').toLowerCase(); // component_map_model_registry

url查询参数转json格式

// ES6

const query = (search = '') =&gt; ((querystring = '') =&gt; (q =&gt; (querystring.split('&amp;').forEach(item =&gt; (kv =&gt; kv[0] &amp;&amp; (q[kv[0]] = kv[1]))(item.split('='))), q))({}))(search.split('?')[1]);

// 对应ES5实现

var query = function(search) {

if (search === void 0) { search = ''; }

return (function(querystring) {

if (querystring === void 0) { querystring = ''; }

return (function(q) {

return (querystring.split('&amp;').forEach(function(item) {

return (function(kv) {

return kv[0] &amp;&amp; (q[kv[0]] = kv[1]);

})(item.split('='));

}), q);

})({});

})(search.split('?')[1]);

};

query('?key1=value1&amp;key2=value2'); // es6.html:14 {key1: "value1", key2: "value2"}

获取URL参数

function getQueryString(key){

var reg = new RegExp("(^|&amp;)"+ key +"=([^&amp;]*)(&amp;|$)");

var r = window.location.search.substr(1).match(reg);

if(r!=null){

return unescape(r[2]);

}

return null;

}

n维数组展开成一维数组

var foo = [1, [2, 3], ['4', 5, ['6',7,[8]]], [9], 10];

// 方法一

// 限制:数组项不能出现`,`,同时数组项全部变成了字符数字

foo.toString().split(','); // ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]

// 方法二

// 转换后数组项全部变成数字了

eval('[' + foo + ']'); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

// 方法三,使用ES6展开操作符

// 写法太过麻烦,太过死板

[1, ...[2, 3], ...['4', 5, ...['6',7,...[8]]], ...[9], 10]; // [1, 2, 3, "4", 5, "6", 7, 8, 9, 10]

// 方法四

JSON.parse(`[${JSON.stringify(foo).replace(/\[|]/g, '')}]`); // [1, 2, 3, "4", 5, "6", 7, 8, 9, 10]

// 方法五

const flatten = (ary) =&gt; ary.reduce((a, b) =&gt; a.concat(Array.isArray(b) ? flatten(b) : b), []);

flatten(foo); // [1, 2, 3, "4", 5, "6", 7, 8, 9, 10]

// 方法六

function flatten(a) {

return Array.isArray(a) ? [].concat(...a.map(flatten)) : a;

注:更多方法请参考《How to flatten nested array in javaScript?》

日期格式化

// 方法一

function format1(x, y) {

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) {

return ((v.length &gt; 1 ? "0" : "") + eval('z.' + v.slice(-1))).slice(-(v.length &gt; 2 ? v.length : 2))

});

}

format1(new Date(), 'yy-M-d h:m:s'); // 17-10-14 22:14:41

// 方法二

Date.prototype.format = function (fmt) { 

var o = {

"M+": this.getMonth() + 1, //月份 

"d+": this.getDate(), //日 

"h+": this.getHours(), //小时 

"m+": this.getMinutes(), //分 

"s+": this.getSeconds(), //秒 

"q+": Math.floor((this.getMonth() + 3) / 3), //季度 

"S": this.getMilliseconds() //毫秒 

};

if (/(y+)/.test(fmt)){

fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));

for (var k in o){

if (new RegExp("(" + k + ")").test(fmt)){

fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));

}

}  

return fmt;

}

new Date().format('yy-M-d h:m:s'); // 17-10-14 22:18:17

特殊字符转义

function htmlspecialchars (str) {

var str = str.toString().replace(/&amp;/g, "&amp;").replace(/, "/g, "&gt;").replace(/"/g, '"');

return str;

}

htmlspecialchars('&amp;jfkds'); // "&amp;jfkds"

动态插入js

function injectScript(src) {

var s, t;

s = document.createElement('script');

s.type = 'text/javascript';

s.async = true;

s.src = src;

t = document.getElementsByTagName('script')[0];

t.parentNode.insertBefore(s, t);

}

格式化数量

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:申请搭建小程序的方法
下一篇:电脑关机微信是否下线?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~