一、解析url参数为对象形式
const url = 'http://www.baidu.com/we/index.html?id=098&aaa=123&ccc=456';
function parseParam(url) {
let arr = url.split('?')[1].split('&');
let obj = {};
arr.forEach(item => {
let [key, value] = item.split('=');
if (/^\d+$/.test(value)) {
value = parseInt(value)
}
obj[key] = value
});
return obj
}
console.log(parseParam(url));//{aaa:123,ccc:456,id: 98}
二、千分位分隔符
var num=12345678.32423432;
function regForm(num) {
return num.toString().replace(/\d+/, (p) => {
return p.replace(/\d(?=(\d{3})+$)+/g, (p1, p2) => {
return p1 + ','
})
})
}
console.log(regForm(num));//12,345,678.32423432
三、判断对象数据类型
//优雅写法:const isType=type=>target=>`[object ${type}]`===Object.prototype.toString.call(target);
const isType=function(type){
return function(target){
return `[object ${type}]`===Object.prototype.toString.call(target);
}
}
const isArray=isType('Array');
console.log(isArray([1,3,'25']));//true
console.log(isArray({a:123}));//false
const isObj=isType('Object');
console.log(isObj([1,3,'25']));//false
console.log(isObj({a:123}));//true
const isString=isType('String');
console.log(isString([]));//false
console.log(isString({}));//false
console.log(isString('hello'));//true