函数定义特点
- 块级作用域:函数在其所在块内有独立的作用域,这有助于避免变量提升和意外的全局变量污染。例如:
{
function foo() {
let a = 10;
console.log(a);
}
// 这里无法访问 a
foo();
}
- 箭头函数:语法更简洁,没有自己的
this
、arguments
、super
和new.target
绑定,其this
指向定义时所在的外层作用域。例如:
const add = (a, b) => a + b;
将函数定义为模块的导出成员
- 默认导出:一个模块只能有一个默认导出。
// math.js
export default function add(a, b) {
return a + b;
}
// main.js
import add from './math.js';
console.log(add(2, 3));
- 命名导出:可以有多个命名导出。
// 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));