经常使用的方法

  • 获取链接后面的参数
//GetQueryString("type");
function GetQueryString(name)
{
    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if(r!=null)return  unescape(r[2]); return null;
}
  • 传链接和想要获取的参数名
//GetLinkParam("../config/queryReConfigInfo.do?serverId=1","serverId")
function GetLinkParam(link,name)
{
    var val = "?" + link.split("?")[1];
    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
    var r = val.substr(1).match(reg);
    if(r!=null)return  unescape(r[2]); return null;
}
  • 拼接2个数组
// ES5的写法
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
Array.prototype.push.apply(arr1, arr2);

// ES6的写法
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
arr1.push(...arr2);
  • 在特定范围内获取一个随机数
var x = Math.floor(Math.random() * (max - min + 1)) + min;
  • 在0和设定的最大值之间生成一个数字数组
var numbersArray = [] , max = 100;

for( var i=1; numbersArray.push(i++) < max;);  // numbers = [0,1,2,3 ... 100]
  • 生成一个随机的数字字母字符串

2
3
4
5
function generateRandomAlphaNum(len) {
    var rdmstring = "";
    for( ; rdmString.length < len; rdmString  += Math.random().toString(36).substr(2));
    return  rdmString.substr(0, len);
}
  • JS的数据类型一共有7种:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)、Symbol(Symbol函数)
  • 查找最大数
// ES5的写法
Math.max.apply(null, [14, 3, 77])

// ES6的写法
Math.max(...[14, 3, 77])

// 等同于
Math.max(14, 3, 77);
  • 字符串转成数字类型
var a = "1";
a = +a; //1
  • 评价
"★★★★★☆☆☆☆☆".slice(5 - rate, 10 - rate);
  • 论如何优雅的取随机字符串
Math.random().toString(16).substring(2) // 13位
Math.random().toString(36).substring(2) // 11
  • 将argruments对象转换成数组
var argArray = Array.prototype.slice.call(arguments);

或者ES6:

var argArray = Array.from(arguments)
  • 用最短的代码实现一个长度为m(6)且值都n(8)的数组
Array(6).fill(8)
  • 实现标准JSON的深拷贝
var a = {
    a: 1,
    b: { c: 1, d: 2 }
}
var b=JSON.parse(JSON.stringify(a))

这里写图片描述

  • 论如何优雅的取整
var a = ~~2.33

var b= 2.33 | 0

var c= 2.33 >> 0

这里写图片描述

  • 如何优雅的实现金钱格式化:1234567890 –> 1,234,567,890
用正则魔法实现:
var test1 = '1234567890'
var format = test1.replace(/\B(?=(\d{3})+(?!\d))/g, ',')

console.log(format) // 1,234,567,890

非正则的优雅实现:
 function formatCash(str) {
       return str.split('').reverse().reduce((prev, next, index) => {
            return ((index % 3) ? next : (next + ',')) + prev
       })
}
console.log(formatCash('1234567890')) // 1,234,567,890
  • 屏幕旋转的事件和样式
//JS处理
function orientInit(){
    var orientChk = document.documentElement.clientWidth > document.documentElement.clientHeight?'landscape':'portrait';
    if(orientChk =='lapdscape'){
        //这里是横屏下需要执行的事件
    }else{
        //这里是竖屏下需要执行的事件
    }
}

orientInit();
window.addEventListener('onorientationchange' in window?'orientationchange':'resize', function(){
    setTimeout(orientInit, 100);
},false)    

//CSS处理
//竖屏时样式
@media all and (orientation:portrait){   }
//横屏时样式
@media all and (orientation:landscape){   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值