面试知识点总结 - js 模块化

本文主要探讨了JavaScript的模块化实现,包括ES6模块、CommonJS、AMD和IIFE等不同场景下的使用方法,旨在帮助开发者更好地理解和掌握JavaScript的模块化机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Es6

let fn1 = ()=>{
}
export{
    fn1,
    fn2
}
import {fn1,fn2} from './detail.js';
内容是对象,分隔符是逗号
export default{
    name: "我是index.js",
    fn2: ()=>{
    }
}
import index from "./index.js";

2. commonJs(浏览器,服务器)

暴露exports 对象,默认是{}
exports.xxx = value	--------------给exports对象添加属性和方法
Module.exports = value ------------{}
Let module = require(xxx)
第三方模块: xxx为模块的包名(name)
自定义模块:xxx为模块文件路径

3. amd(浏览器端)

module1.js  module2.js
定义没有依赖的模块:
define(function(){
......
    return 模块(将要暴露出的模块)
})
定义有依赖的模块(第一个参数为要依赖的模块的数组,每一项都是字符串)
define([‘module1’,’module2’,’jquery’],function(m1,m2,jquery){
    ....
    return 模块(将要暴露出的模块)
})
app.js
require(['module1','module2'],function(m1,m2){
    m1,m2(使用m1,m2)
})
app.js
requirejs.config({
    baseUrl:'./js/',         相对于根目录
    paths:{
        'module1':'./module/module1',
        'module2':'./module/module2',
‘jquery’:./libs/jquery.js’
    }
})
html
<script data-main="js/app.js" src="js/libs/require.js"></script>

4. IIFE

(function(win,$){
    let msg = 'hello world';
    function saymsg(){
        console.log(msg)
$('body').css('background','#f00')
    }
    win.module = {
        msg,
        saymsg
    }
})(window,jQuery)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值