import后面加上大括号{}和不带大括号有什么区别?"在JavaScript中,`import`语句用于从其他模块引入
"在JavaScript中,import
语句用于从其他模块引入功能。import
后面加上大括号 {}
和不带大括号的区别在于引入的内容类型。
带大括号的 import
使用大括号的 import
语法用于引入具名导出(named exports)。具名导出允许在模块中导出多个变量、函数或类。引入时,需要使用大括号指定要引入的具体导出名称。
示例:
// module.js
export const foo = 'foo';
export const bar = 'bar';
// main.js
import { foo, bar } from './module.js';
console.log(foo); // 输出: 'foo'
console.log(bar); // 输出: 'bar'
在上述示例中,foo
和 bar
是在 module.js
文件中具名导出的变量。在 main.js
中使用大括号引入这两个具名导出。
如果尝试引入未导出的变量,将会抛出错误。
import { baz } from './module.js'; // 报错: 'baz' is not defined
不带大括号的 import
不带大括号的 import
语法用于引入默认导出(default export)。每个模块只能有一个默认导出,通常用于导出一个主要的功能。
示例:
// module.js
const foo = 'foo';
export default foo;
// main.js
import foo from './module.js';
console.log(foo); // 输出: 'foo'
在这个例子中,foo
是 module.js
的默认导出。引入时不需要使用大括号。可以为默认导出指定任意名称。
// module.js
export default function() {
console.log('Hello, world!');
}
// main.js
import greet from './module.js';
greet(); // 输出: 'Hello, world!'
混合使用
一个模块可以同时具有具名导出和默认导出。引入时,可以同时使用大括号和不带大括号的方式。
示例:
// module.js
export const foo = 'foo';
export const bar = 'bar';
export default function() {
console.log('Hello, world!');
}
// main.js
import greet, { foo, bar } from './module.js';
console.log(foo); // 输出: 'foo'
greet(); // 输出: 'Hello, world!'
总结
- 带大括号的
import
用于具名导出,允许引入多个导出。 - 不带大括号的
import
用于默认导出,每个模块只能有一个。 - 可以在同一个模块中同时使用具名导出和默认导出。"
转载自:https://juejin.cn/post/7415197972008812556