Js面试题:说一下js的模块化?

    作用

        一个模块就是实现某个特定功能的文件,在文件中定义的变量、函数、类都是私有的,对其他文件不可见。

        为了解决引入多个js文件时,出现 命名冲突、污染作用域 等问题

    AMD

        浏览器端模块解决方案

        AMD即是“异步模块定义”

        在AMD规范中,我们使用define定义模块,使用require加载模块

        提前执行:它采用异步方式加载模块,一边加载一边执行

        依赖前置:依赖必须在定义时引入

    CMD

        浏览器端模块解决方案

        CMD即是“通用模块定义”

        在CMD规范中,我们使用define定义模块,使用require加载模块

        延迟执行:它采用异步方式加载模块,先加载完毕再按需执行

        依赖就近:依赖可以在代码的任意一行引入

    CommonJS

        服务器端模块解决方案

        在CommonJS规范中,我们使用module.exports导出模块,使用require加载模块

        立即执行:它采用同步方式加载模块,先加载后执行,执行完毕会被缓存

        依赖就近:依赖可以在代码的任意一行引入

    ESModule

        浏览器端 和 服务器端 通用的模块解决方案

        在ESModule规范中,我们使用export导出模块,使用import加载模块

        延迟执行:它采用异步方式加载模块,先加载完毕再按需执行

        依赖就近:依赖可以在代码的任意一行引入

你可能感兴趣的:(前端面试题合集,前端,javascript,开发语言)