export 常见有几种导出方式:命名行内导出,命名子句导出,默认导出
命名子句导出是通过在大括号内指定导出的变量。
const foo = 'foo'; const bar = 'bar'; export {foo}; export {bar as baz, foo}; export {foo, bar}; 在这里我想到,在 Javascript 中 {} 是一个块。每个块都有其作用域 因此子句导出是创建了一个单独的作用域,在该作用域内指定要导出的变量,但是这么想的话 在指定的作用域中又不能创建方法并返回 例如做到这样:export { hi(){} } 当我通过命名行导出和默认导出方法时: export function hi(){}; export default function(){}; 对于该 export 语句 1,创建了 hi 方法 并 2,返回 hi 方法的用 给 export 3,export 创建 default 4,创建 匿名方法 5,返回匿名方法的引用给 default 从 1-2,3-5 来看,对于方法都是创建了一个作用域块的引用给到 export 。而在 Javascript 中 {} 也是简写对象的一种形式,在这里并不是为 export 创建一个对象,返回该对象的引用。 那么我的问题来了,如果对于 export “{}”并不是一个作用域块,不能在其中声明方法,初始变量等。也不是对象简写,那么 子句块的作用就只限于用 as 进行别命名了。真的有这个必要么?在导出命名行进行 as 不是更好吗?? 