笔记"/>
写点儿笔记
1、当需要一个非常干净且高度可定制的对象当做数据字典的时候可以使用Object.create(null)来创建空对象
2、超过2**53-1也就是9007199254740991时,计算可能导致精度丢失
大数计算
function(a, b) {
let res = '', //结果
temp = 0; //按位加的结果及进位
a = a.split('')
b = b.split('')
while (a.length || b.length || temp) {
//~~按位非 1.类型转换,转换成数字 2.~~undefined==0
temp += ~~a.pop() + ~~b.pop()
res = (temp % 10) + res
temp = temp > 9
}
return res.replace(/^0+/, '')
}
3、a==1&&a==2&&a==3
原理是
let a={
i:1,
valueOf:()=>{
return a.i++
}
}
console.log(a==1&&a==2&&a==3)
原理是==的判等的顺序是,获取原始值,然后判断两边的原始值是否相等,所以调用valueOf获取原始值
关于valueOf和toString,区别是valueOf()返回最适合该对象类型的原始值,toString()返回原始值的字符串形式
4、柯里化
在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。
5、compose
compose可以把类似于f(g(h(x)))这种写法简化成compose(f, g, h)(x)
更多推荐
写点儿笔记
发布评论