为什么此代码记录未定义'?

时间:2017-06-29 15:56:40

标签: node.js ecmascript-6 es6-modules

我的包json配置为使用babel使用ES6模块:

"scripts": {
    "start": "nodemon src/index.js --exec babel-node --presets es2015,stage-2",
    "build": "babel src -d dist",
    "serve": "node dist/index.js"
},

这是我的索引文件:

import test from './test'
console.log(test)
console.log(test())

测试文件:

let test = () => console.log('test');
export default test;

当我运行代码时,我得到了:

[Function: test]
test
undefined

undefined来自哪里?

2 个答案:

答案 0 :(得分:2)

您正在记录函数的返回值:

console.log(test())

首先调用记录test的{​​{1}}。接下来,由于'test'没有返回任何内容,console.log不会返回任何内容,因此返回值为test,这是记录的内容。

答案 1 :(得分:1)

因为test()没有返回您尝试登录控制台的任何类型。即它在控制台中显示未定义的原因