JavaScript常用使用_03
JavaScript常用使用_03
JavaScript常用使用_03
判断空对象
1 2 3 4 5 6 7 8 9 10 11 12 13
| function checkObj(obj) { return Object.keys(obj).length === 0; } checkObj([]); checkObj({});
Object.keys({}).length; Object.keys({foo: "bar"}).length;
Object.keys([]).length; Object.keys(["fei"]).length;
|
常见加密解密
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| let foo = "Hello fei"; window.btoa(foo); window.atob("SGVsbG8gZmVp");
let url = "http://github.com/search?name=1 2 3 $age=456"; encodeURI(url); decodeURI("http://github.com/search?name=1%202%203%20$age=456");
let bar = "a=123&b=456"; encodeURIComponent(bar); decodeURIComponent("a%3D123%26b%3D456");
|
Blob
和 String
相互转换
1 2 3 4 5 6 7 8 9 10 11 12
| var blob = new Blob(['daFei'], { type: 'text/plain' }); console.log(blob);
var reader = new FileReader(); reader.readAsText(blob, 'utf-8'); reader.onload = function (e) { console.info(reader.result); }
|
参数
解构参数 和 方法参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| function foo({name = "daFei", age = 18}={}) { console.log(name,age); } foo({name:"foo",age:20}); foo({age:22});
function bar(name="daFei",callBack) { if (callBack) { callBack(); }else{ console.log("没有执行"); } } bar("bar", () => { console.log("开始执行"); }); bar("bar2")
|
判断浏览器类型
1 2 3 4 5 6 7 8 9 10 11 12 13
| var inBrowser = typeof window !== 'undefined'; var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform; var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase(); var UA = inBrowser && window.navigator.userAgent.toLowerCase(); var isIE = UA && /msie|trident/.test(UA); var isIE9 = UA && UA.indexOf('msie 9.0') > 0; var isEdge = UA && UA.indexOf('edge/') > 0; var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android'); var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios'); var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge; var isPhantomJS = UA && /phantomjs/.test(UA); var isFF = UA && UA.match(/firefox\/(\d+)/);
|
抛出异常
1 2 3 4 5
| try { throw "抛出异常"; } catch (err) { console.error("捕获___" + err); }
|
解构重命名
1 2
| const {fei: fei_temp, foo: foo_temp} = {fei: "123", foo: "helloWorld"}; console.log(fei_temp, foo_temp);
|
剩余
1
| let {a, b, ...fei} = {a: 10, b: 20, c: 30, d: 40};
|
默认
1 2
| let {foo, b = 5} = {foo: 3}; let {foo, b: bb = 5} = {foo: 3};
|
demo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <script> let foo = []; let bar = []; let fei = [];
const testFun = () => { let foo = [1, 2, 3]; let bar = ['a', 'b', 'c']; let fei = ['hello', 'world']; return {foo, bar, fei} }
try { ({foo, bar, fei} = testFun()) } catch (e) { ({foo, bar, fei} = testFun()) }
console.log(foo, bar, fei) </script>
|
高阶函数 filter
map
reduce
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
const nums = [10, 15, 18, 25, 34]; let newNums = nums.filter(item => item < 20) .map(item2 => item2 * 2) .reduce((total, item3) => total + item3);
const nums = [10, 15, 18, 25, 34]; let newNum_1 = nums.filter(function (item1) { return item1 < 20; }); console.log(newNum_1);
let newNum_2 = newNum_1.map(function (item2) { return item2 * 2; }); console.log(newNum_2);
let newNum_3 = newNum_2.reduce(function (total, item3) { return total + item3; }) console.log(newNum_3);
|
map
妙用
转换数组中类型
1 2 3 4 5 6 7 8 9 10
| let strArr = ["1", "2", "3"]; let numArr = strArr.map(Number) console.log(numArr)
let numArr1 = [1, 2, 3] let strArr1 = numArr1.map(String)
console.log(strArr1)
|
filter
双重循环去重
场景,对个一个数组去重,条件是根据另一个数组中的数据
1 2 3 4 5 6 7 8 9 10
| const words1 = ['fei', 'foo', 'bar']; const words2 = ['fei']; let newArr = words1.filter(item => { const found = words2.findIndex(row => item === row) if (found === -1) { return true; } }) console.log(newArr);
|
set
和 map
set
利用唯一,数组去重
1
| [...new Set([1, 1, 2, 2, 5, 7])]
|
获取当前之后的时间
JavaScript获取当前时间减去10分钟
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| function dateDecrease(dStr,interval = 10) { let d = new Date( dStr.substring(0, 4), dStr.substring(5, 7) - 1, dStr.substring(8, 10), dStr.substring(11, 13), dStr.substring(14, 16), dStr.substring(17, 19) ); d.setTime(d.getTime() - interval * 60 * 1000); let getMonth = (d.getMonth() + 1) < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1; let getDate = d.getDate() < 10 ? "0" + (d.getDate()) : d.getDate(); let getHours = d.getHours() < 10 ? "0" + (d.getHours()) : d.getHours(); let getMinutes = d.getMinutes() < 10 ? "0" + (d.getMinutes()) : d.getMinutes(); return d.getFullYear() + "-" + getMonth + "-" + getDate + " " + getHours + ":" + getMinutes; } console.log(dateDecrease('2022-02-04 08:00'))
|
JavaScript获取当前时间加上10分钟
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| function dateAdd(dStr, interval = 10) { let d = new Date( dStr.substring(0, 4), dStr.substring(5, 7) - 1, dStr.substring(8, 10), dStr.substring(11, 13), dStr.substring(14, 16), dStr.substring(17, 19) ); d.setTime(d.getTime() + interval * 60 * 1000); let getMonth = (d.getMonth() + 1) < 10 ? "0" + (d.getMonth() + 1) : d.getMonth() + 1; let getDate = d.getDate() < 10 ? "0" + (d.getDate()) : d.getDate(); let getHours = d.getHours() < 10 ? "0" + (d.getHours()) : d.getHours(); let getMinutes = d.getMinutes() < 10 ? "0" + (d.getMinutes()) : d.getMinutes(); return d.getFullYear() + "-" + getMonth + "-" + getDate + " " + getHours + ":" + getMinutes; } console.log(dateAdd('2022-02-20 08:00'))
|
获取当天时间戳
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
new Date(new Date().toLocaleDateString()).getTime()
new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1
new Date().getTime()
new Date().toLocaleDateString()
new Date().toLocaleString()
|