JS的一些小知识
1. bind()函数无法改变ES6箭头函数中this的指向
const a = ()=>{ console.log(this) } a.bind(document)()
2.当使用~~按位非进行类型转化时,转换浮点数会丢失小数点后的数,当字符串大于2147483647(即2的31次方减一)时转化会出问题,所以我们尽量少用~~转化过大的字符串
~~'15.121' //返回15
~~2147483647 //返回2147483647
~~2147483648 //返回-2147483648 即2的31次方
3.typeof null 等于object的原因
在JS最初的版本中,使用的是32位系统,为了性能考虑使用低位存储了变量的类型信息,000开头代表的是对象,然而null表示为全零,所以将它错误的判断为 object
虽然现在的内部类型判断代码已经改变了,但是对于这个 Bug 却是一直流传下来。
语雀链接🔗 https://www.yuque.com/suihangadam
归来卧占楼千尺,梦落沧波明月舟。