JavaScript基础篇(11-20题)

此文章,来源于印客学院的资料【第一部分:基础篇(105题)】,也有一些从网上查找的补充。

这里只是分享,便于学习

诸君可以根据自己实际情况,自行衡量,看看哪里需要加强。

概述如下:

  • 模块化开发怎么做?
  • 异步加载JS的方式有哪些?
  • 那些操作会造成内存泄漏?
  • XML和JSON的区别?
  • 谈谈你对webpack的看法
  • 说说你对AMD和Commonjs的理解
  • 常见web安全及防护原理
  • 用过哪些设计模式?
  • 为什么要有同源限制?
  • offsetWidth/offsetHeight,clientWidth/clientHeight与scrollWidth/scrollHeight的区别

模块化开发怎么做?

立即执行函数,不暴露私有成员

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0vS9jVJl-1689732980409)(https://mmbiz.qpic.cn/sz_mmbiz_png/BOlSgLkrCDbNK7y5xraRyQHGdDibibdWr6Ms2ICYLB9mgibGcGJImqoicYGzx0RjGAZw0dY6zmcdibgAALjpc6gYaoQ/640?wx_fmt=png)]

在 JavaScript 中,模块化开发是一种将代码分割为独立模块的方法每个模块都有自己的作用域,并且可以通过导入和导出来与其他模块进行交互。这种模块化的方式有助于提高代码的可维护性、重用性和可测试性。

下面是一种常见的 JavaScript 模块化开发方式,使用 ES6 的模块语法

  • 创建一个模块(例如,math.js):
// math.js
export function add(a, b) {
  return a + b;
}

export function subtract(a, b) {
  return a - b;
}
  • 导入并使用模块中的函数:
// main.js
import { add, subtract } from './math.js';

console.log(add(5, 2)); // 输出: 7
console.log(subtract(5, 2)); // 输出: 3

在这个例子中,math.js 是一个模块,它定义了 add()subtract() 两个函数,并通过 export 关键字导出。然后,在 main.js 中使用 import 关键字将需要的函数导入,并进行调用。

请注意,上述示例假设你正在使用支持 ES6 模块化的环境,比如现代浏览器或者 Node.js 12.0.0+ 版本。如果你想在不同环境或旧版浏览器中使用模块化开发,可能需要使用工具(如Webpack、Browserify)或降级到其他的模块化方案(如CommonJS、AMD)。

此外,还有其他的模块化规范和库可供选择,例如 CommonJS(Node.js 默认的模块化方案)、AMD(用于浏览器中异步加载模块)、UMD(通用模块定义)等。选择合适的模块化方案取决于你的项目需求和目标环境。

异步加载JS的方式有哪些?

JavaScript 中异步加载 JS 的方式有以下几种常见的方法:

  1. 动态创建

你可能感兴趣的:(前端杂货铺,javascript,开发语言,ecmascript)