「前端面试题大全01」


一.JS中的Numeber类型

1.问题一:在四则运算中存在精度丢失的问题

(1)比如:0.1 + 0.2 //结果为:0.30000000000000004

(2)原因:计算机中用二进制来存储小数,而大部分小数转成二进制之后都是无限循环的值,因此存在取舍问题,也就是精度丢失。

  1. 超过最大安全整数的运算是不安全的

(1)比如:9007199254740991 + 2 // 9007199254740992

(2)原因:本质上还是因为数字类型在计算机中的存储结构。在尾数位不够补零之后,只要是多余的尾数为1所对应的整数都不能被精确表示。

3.上面两个问题原因总结

不管是浮点数计算的结果错误和大整数的结果错误,最终都可以归结到JS的精度只有53位(尾数只能存储53位的有效数字)

4.解决方案:

(1)大而全的解决方案就是使用mathjs

(2)使用这个1k都不到的number-precision

二.css设计模式

OOCSS; SMACSS;BEM;Atomic CSS;CSSin JS

细节可以见我的独立博客哦。

三.WeakMap可以解决闭包内存泄漏问题

1.map

(1)任意值当做键

(2)对象Object的键只能是字符串

(3)Map类似字典,set类似集合

2.weakmap

(1)键必须是对象

(2)当引用的对象消失之后,JS的GC垃圾回收机制会自动释放占用的内存,从而解决内存泄漏问题

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,595评论 25 709
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,866评论 8 265
  • 1 今年,非特殊情况,每周六我都会去上韩语课,从时间跨度来讲,为期一年了。 知道我在学韩语的人,基本会问,韩语学的...
    付姐儿阅读 3,828评论 3 50
  • 突然, 觉得自己好遥远, 像是, 手脚心不由自主, 不动, 但是意志还存在, 还是, 想着那人和那情。
    李枍阅读 799评论 0 1
  • 你轻轻掀开绒棉小被 就着阳光 在我的额上品尝一抹香甜 “早安” 我偷偷扯动唇角装睡 昨夜星辰 在这张洁白的大床上倾...
    倾听一棵树阅读 1,209评论 1 3