JavaScript 专题

判断数组的方法?

前端模块化发展了解吗

最先有的是 CommonJS,为了是让 JS 可以运行在浏览器之外,得到了 NodeJS 的完美支持,但是因为浏览器同步加载文件会造成性能问题,所以 AMD 和 CMD 作为异步加载的规范诞生了,他们很类似,但是 AMD 推崇依赖前置,提前执行,CMD 则推崇依赖就近,延迟执行。但是,ES6 的 module 通过静态编译实现比 ComonJS 更佳的性能,借鉴了 AMD 的异步却拥有更高的灵活度,所以我们应该拥抱 ESmodule,现代的 snowPack 和 Vite 都是通过静态编译大幅度提升了打包速度。

解决 0.1 + 0.2 !=0.3

产生原因:js 中的数字是采用双精度 64 位浮点数存储,计算使用二进制,呈现结果时才会转换成十进制,当十进制小数的二进制表示的有限数字超过 52 位时,在 JavaScript 里是不能精确存储的,这时候就存在舍入误差

//0.1+0.2==0.3
function FixAdd(nums1, nums2) {
  return (nums1 * 1000 + nums2 * 1000) / 1000;
}
function FixAdd(nums1, nums2) {
  return (nums1 + nums2).toFixed(1);
}

this 指向

如何在控制台获取到原生 dom 的方法

  1. 使用document.getElementById(id)
  2. 使用document.getElementsByClassName(className)
  3. 使用document.getElementsByTagName(tagName)
  4. 使用document.querySelector(selector)
  5. 使用document.querySelectorAll(selector)

下一道幸运题目