学习记录

concat

存在于Array.prototype对象上,执行返回新的数组,言外之意就是不会改变原数组,参数可以不传,等同于复制数组。参数也可以传多个元素,效果如下:

1
2
3
4
const arr = [1, 2, 3];
console.log(arr.concat(4, 5)) // [1, 2, 3, 4, 5]
console.log(arr.concat()) // [1, 2, 3]
console.log(arr.concat([4, 5])) // [1, 2, 3, 4, 5]

DOMContentLoaded事件 与 load事件

1️⃣ 现代 JavaScript 教程加载文档和其他资源 ⤴️

原型继承中的坑

请看下面的代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
const parent = {
	children: [],
	produce (name) {
		this.children.push(name);
	}
}

const child = {
	__proto__: parent,
}

child.produce('tim');

获取变量类型

1
2
3
const getDataType = data => {
	return Object.prototype.toString.call(data).match(/ (.+)]/)?.[1];
}

金额换算

我做的需求是,用户可以在InputNumber组件内输入以元为单位的金额,比如100.22元,精度到分,但是后端需要前端把元转换为分以后再传给他们。

1
2
3
4

const toPenny = money => {
	return parseInt(money.toFixed(2).replace(/\./, ''), 10)
}

可以看出来,我们利用toFixed把number类型转换为string类型,然后把string中的小数点去掉,这样没经过计算,单纯操作字符串,不存在误差。

updatedupdated2020-09-292020-09-29