命名不分先后,根据自己平时遇见陌生但又觉得挺有意思的记录。
1、isFinite 检查是否为有限数字,这个可以用来检测对象是否为数字,如果为字符串的话会尝试转换成数字。
2、Math
Math.abs() 可传入number 求其绝对值
toFixed() 四舍五入保留数值 (这个不是Math函数,应用在NumberObject上)
3、Array.prototype.reduce
js的数组有许多自身的函数,reduce()就是一个可以用来计算数组内部数据的函数,语法
arr.reduce(callback [,initialValue])
reduce第一个参数可以接收一个callback函数并且有四个参数
- accumulator 累加器累加回调的返回值; 它是先前在回调调用中返回的累计值,!或者
initialValue
- currentValue 当前在数组中处理的元素
- currentIndex 数组中正在处理的当前元素的索引。如果设置
initialValue
,则从索引0开始,否则从索引1开始。 - array 当前数组
这个很好理解,就是在使用的时候会有一种情况,比如初始的arr为空数组,或者在使用filter进行过滤条件的时候,返回了空数组,这个时候在使用 arr.reduce(callback) 的时候,必须设置一下initialValue,否者会报 Reduce of empty array with no initial value,因为没有设置initialValue就会默认取第一个,第一个都没有就会找不到初始值,很多种方法可以处理,可以判断accumulator是否为空,还是建议规范书写,考虑到空数组的情况。
//可以粘贴到控制台试一下
const array2 = [];
const reducer = (accumulator, currentValue) => accumulator + currentValue;
console.log(array2.reduce(reducer));
VM66253:4 Uncaught TypeError: Reduce of empty array with no initial value
at Array.reduce (<anonymous>)
at <anonymous>:4:20