MST

星途 面试题库

面试题:JavaScript模块化中导出函数的常见方式及区别

请简述JavaScript模块化中,使用export default和普通export导出函数的方式,并且说明它们在使用场景和导入方式上有什么区别。
28.7万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

1. 普通 export 导出函数

  • 导出方式:可以在函数声明前直接使用 export 关键字,或者在文件末尾通过 export {函数名} 的形式导出。
    // 方式一
    export function add(a, b) {
        return a + b;
    }
    // 方式二
    function subtract(a, b) {
        return a - b;
    }
    export { subtract };
    
  • 导入方式:导入时需明确指定要导入的函数名,并且可以使用别名。
    import { add, subtract as sub } from './module.js';
    console.log(add(1, 2));
    console.log(sub(5, 3));
    
  • 使用场景:当一个模块需要导出多个功能相关的函数,并且希望在导入时明确知道每个导入的功能是什么,适用于这种方式。这样可以选择性地导入需要的函数,提高代码的灵活性和可维护性。

2. export default 导出函数

  • 导出方式export default 后直接跟函数声明或定义。
    export default function multiply(a, b) {
        return a * b;
    }
    // 或者
    function divide(a, b) {
        return a / b;
    }
    export default divide;
    
  • 导入方式:导入时无需使用大括号,可自行命名导入的变量。
    import myMultiply from './module.js';
    console.log(myMultiply(2, 3));
    
  • 使用场景:当模块只有一个主要的功能(例如一个主要的函数、一个类等),使用 export default 可以使导入更加简洁,导入者无需关心具体的函数名,直接按需命名即可。这种方式更符合一些常见的模块设计习惯,例如一个模块对应一个特定的功能。