前端超实用编码技巧

  1. 获取时间戳的 时:分:秒
let timeStamp = new Date().getTime(); // 获得时间戳

new Date(timeStamp).toTimeString().slice(0,8); // '13:44:41'
  1. 时分秒 前补0 (倒计时)
let hour = 9;

// bad
hour = String(hour).length > 1 ? hour : '0'+hour;

// good
hour = String(hour).padStart(2, '0');
// or
hour = ('00'+hour).slice(-2);
  1. 数组或对象取值 (对象解构)
let arr = [1,2,3,4];
let obj = {name: '李白', age: 24};

// bad
let arr1 = arr[0];
let arr2 = arr.slice(1);

let name = obj.name;
let age = obj.age;


// best
let [arr1, ...arr2] = arr;
let {name, age} = obj;// name: 李白 / age: 24

在对象解构中,如果解构得到的变量名不是自己想要的,可重新赋值:

let {name:newName, age} = obj;
// newName: 李白 / age: 24
  1. 数据合并 (构造数据时)
	let arr1 = [1,2];
	let arr2 = [3,4,5];

	let obj1 = {
		name: '杜甫',
		age: 23
	}
	let obj2 = {
		title: '诗圣',
		poem: '好雨知时节,当春乃发生'
	}

	// bad
	let arr = arr1.concat(arr2);
	let obj = Object.assign(obj1, obj2);

	// best
	let arr = [...arr1, ...arr2];
	let obj = {...obj1, ...obj2};

5.接口状态码判断 (使用incldes)

	// bad
	if (xhr.state === 200 || xhr.state === 304) {
		...
	}

	// best
	if ([200,304].includes(xhr.state)) {
		...
	}

6.巧用 some、every、find. 详情点击这里

1、some()
不创建新数组
不改变原数组
判断为true则马上跳出循环并returntrue, 否则 return false

2、every()
不创建新数组
不改变原数组
判断为false则马上跳出循环并returnfalse,否则 return true

3、find()
不创建新数组
不改变原数组
输出的是一旦 判断为true 则跳出循环输出符合条件的数组元素
  1. 处理并发请求 (各请求之间没有依赖关系)
Promise.all([request1(), request2(), request3()]).then((response1, response2, response3) => {
	...
})
  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端卡卡西呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值