一、String Skill格式化金钱constThousandNumnumnum.toString().replace(/\B(?(\d{3})(?!\d))/g,,);constmoneyThousandNum(19941112);// money 19,941,112生成随机IDconstRandomIdlenMath.random().toString(36).substr(3,len);constidRandomId(10);// id jg7zpgiqva操作URL查询参数constparamsnewURLSearchParams(location.search.replace(/\?/ig,));// location.search ?nameyajunsexfemaleparams.has(yajun);// trueparams.get(sex);// female二、Number Skill取整constnum1~~1.69;constnum21.69|0;constnum31.690;// num1 num2 num3 1 1 1转数值只对null、、false、数值字符串有效,转成Number类型constnum1null;constnum2;constnum3false;letnum4169;// num1 num2 num3 num4 0 0 0 169时间戳consttimestampnewDate(2019-03-31);// timestamp 1553990400000精确小数constRoundNum(num,decimal)Math.round(num*10**decimal)/10**decimal;constnumRoundNum(1.69,1);// num 1.7判断奇偶constOddEvennum!!(num1)?odd:even;constnumOddEven(2);// num even取最小最大值constarr[0,1,2];constminMath.min(...arr);constmaxMath.max(...arr);// min max 0 2生成范围随机数constRandomNum(min,max)Math.floor(Math.random()*(max-min1))min;constnumRandomNum(1,10);// 8三、Boolean Skill短路运算符constad1;// 满足条件赋值取假运算从左到右依次判断遇到假值返回假值后面不再执行否则返回最后一个真值constbd||1;// 默认赋值取真运算从左到右依次判断遇到真值返回真值后面不再执行否则返回最后一个假值constc!d;// 取假赋值单个表达式转换为true则返回false否则返回true判断数据类型undefined、null、string、number、boolean、array、object、symbol、date、regexp、function、asyncfunction、arguments、set、map、weakset、weakmapfunctionDataType(tgt,type){constdataTypeObject.prototype.toString.call(tgt).replace(/\[object /g,).replace(/\]/g,).toLowerCase();returntype?dataTypetype:dataType;}DataType(yajun);// stringDataType(19941112);// numberDataType(true);// booleanDataType([],array);// trueDataType({},array);// false是否为空对象constobj{};constflagDataType(obj,object)!Object.keys(obj).length;// flag true满足条件时执行constflagfalse;// undefined、null、、0、false、NaNflagFunc();四、Array Skill克隆数组const_arr[0,1,2];constarr[..._arr];constarrobject.assign([],_arr);constarrJSON.parse(JSON.stringify(_arr));// arr [0, 1, 2]合并数组constarr1[0,1,2];constarr2[3,4,5];constarr[...arr1,...arr2];// arr [0, 1, 2, 3, 4, 5];去重数组constarr[...newSet([0,1,1,null,null])];// arr [0, 1, null]清空数组constarr[0,1,2];arr.length0;// arr []截断数组constarr[0,1,2];arr.length2;// arr [0, 1]交换赋值leta0;letb1;[a,b][b,a];// a b 1 0过滤空值undefined、null、、0、false、NaNconstarr[undefined,null,,0,false,NaN,1,2].filter(Boolean);// arr [1, 2]数组首部插入成员letarr[1,2];// 以下方法任选一种arr.unshift(0);arr[0].concat(arr);arr[0,...arr];// arr [0, 1, 2]数组尾部插入成员leta0;letb1;[a,b][b,a];// a b 1 0创建指定长度数组constarr[...newArray(3).keys()];// arr [0, 1, 2]创建指定长度且值相等的数组constarrnewArray(3).fill(0);// arr [0, 00]reduce代替map和filterconst_arr[0,1,2];// mapconstarr_arr.map(vv*2);constarr_arr.reduce((t,c){t.push(c*2);returnt;},[]);// arr [0, 2, 4]// filterconstarr_arr.filter(vv0);constarr_arr.reduce((t,c){c0t.push(c);returnt;},[]);// arr [1, 2]// map和filterconstarr_arr.map(vv*2).filter(vv2);constarr_arr.reduce((t,c){cc*2;c2t.push(c);returnt;},[]);// arr [4]五、Object Skill克隆对象const_obj{a:0,b:1,c:2};// 以下方法任选一种constobj{..._obj};constobjObject.assign({},_obj);constobjJSON.parse(JSON.stringify(_obj));// obj { a: 0, b: 1, c: 2 }合并对象constobj1{a:0,b:1,c:2};constobj2{c:3,d:4,e:5};constobj{...obj1,...obj2};// obj { a: 0, b: 1, c: 3, d: 4, e: 5 }对象字面量constenvprod;constlink{dev:Development Address,test:Testing Address,prod:Production Address}[env];// link Production Address对象变量属性constflagfalse;constobj{a:0,b:1,[flag?c:d]:2};// obj { a: 0, b: 1, d: 2 }创建纯空对象constobjObject.create(null);Object.prototype.a0;// obj {}删除对象无用属性constobj{a:0,b:1,c:2};// 只想拿b和cconst{a,...rest}obj;// rest { b: 1, c: 2 }解构对象属性别名constobj{a:0,b:1,c:2};const{a,b:d,c:e}obj;// a d e 0 1 2五、Function Skill函数自执行constFuncfunction(){}();// 常用(function(){})();// 常用(function(){}());// 常用[function(){}()];检测非空参数functionIsRequired(){thrownewError(param is required);}functionFunc(nameIsRequired()){console.log(111name);}Func();// param is requiredFunc(222);// 111222优雅处理Async/Await参数functionAsyncTo(promise){returnpromise.then(data[null,data]).catch(err[err]);}const[err,res]awaitAsyncTo(Func());优雅处理多个函数返回值functionFunc(){returnPromise.all([fetch(/user),fetch(/comment)]);}const[user,comment]awaitFunc();// 需在async包围下使用
郑州网站建设
网页设计
企业官网