前端面试常问的基础(三)
- JS中浮点数精度误差解决
- 如果有精度要求,可以用toFixed方法处理
- 通用处理方案:把需要计算的数字乘以 10 的 n 次幂,换算成计算机能够精确识别的整数,然后再除以 10 的 n 次幂
- promises,observables,generator 或 async-wait 编所需的函数。
- JavaScript Proxy实现简单的数据绑定
- “new” 关键字在 JavaScript 中有什么作用?
new 运算符是用来实例化一个类,从而在内存中分配一个实例对象。
通过new可以产生原对象的一个实例对象,而这个实例对象继承了原对象的属性和方法。因此, new存在的意义在于它实现了javascript中的继承,而不仅仅是实例化了一个对象!
- JavaScript 中有哪些不同的函数调用模式? 详细解释。 提示:有四种模式,函数调用,方法调用,.call() 和 .apply()。
- 函数模式 fn()
- 方法模式 a.fn()
- 构造器模式 new
- 上下文模式 call apply
/*apply()方法*/两个参数 function.apply(thisObj[, argArray]) /*call()方法*/多个参数 function.call(thisObj[, arg1[, arg2[, [,...argN]]]]);
- 新 ECMAScript 提案
https://www.cnblogs.com/fundebug/p/what-is-new-in-javascript-for-2019.html
bigint
class 增加静态方法和属性 私有属性和方法
symbol值在序列化的过程中会被忽略或被转换成null
Fetch API 相对于传统的 Ajax 有哪些改进?
改进:promise 风格的api,async/await方式调用更友好,更简洁,错误处理更直观
缺点/难点:
- fetch 是一种底层的 api,json传值必须转换成字符串,并且设置content-Type为application/json
- fetch 默认情况下不会发送 cookie
- 无法获取progress,也就是说无法用fetch做出有进度条的请求
- 不能中断,我们知道传统的xhr是可以通过调用abort方法来终止我们的请求的
其实javasript的社区一直很活跃,相信上述问题很快会在未来的更新中解决