MST

星途 面试题库

面试题:JavaScript函数定义在模块场景下的适配

在ES6模块中,函数定义有哪些特点?如何将一个函数定义为模块的导出成员?请举例说明。
10.5万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

函数定义特点

  1. 块级作用域:函数在其所在块内有独立的作用域,这有助于避免变量提升和意外的全局变量污染。例如:
{
  function foo() {
    let a = 10;
    console.log(a);
  }
  // 这里无法访问 a
  foo();
}
  1. 箭头函数:语法更简洁,没有自己的thisargumentssupernew.target绑定,其this指向定义时所在的外层作用域。例如:
const add = (a, b) => a + b;

将函数定义为模块的导出成员

  1. 默认导出:一个模块只能有一个默认导出。
// math.js
export default function add(a, b) {
  return a + b;
}
// main.js
import add from './math.js';
console.log(add(2, 3)); 
  1. 命名导出:可以有多个命名导出。
// utils.js
export function subtract(a, b) {
  return a - b;
}
export function multiply(a, b) {
  return a * b;
}
// main.js
import { subtract, multiply } from './utils.js';
console.log(subtract(5, 3)); 
console.log(multiply(2, 4));