Tem*_*ary 1 javascript node.js ecmascript-6
请参阅以下代码段:
片段#1:
let fs = require("fs");
fs.readFile(process.argv[2], "utf8", (error, data) => console.log(arguments));Run Code Online (Sandbox Code Playgroud)
小片#2:
let fs = require("fs");
fs.readFile(process.argv[2], "utf8", (error, data) => console.log(error, data));Run Code Online (Sandbox Code Playgroud)
预期日志:
值(error, data),例如:
null 'console.log("HELLO WORLD");\r\n'
当您尝试这两个片段时,您会发现Snippet#1会执行并记录一些意外的值,console.log(arguments)但会console.log(error, data)记录正确的值; 价值观(error, data).
为什么以及为Snippet#1记录的值是多少?
Tam*_*dus 10
没有绑定参数
箭头函数不绑定参数对象因此,参数只是对封闭范围中名称的引用.
如果您希望在箭头函数中使用可变参数,请使用其余参数语法:
fs.readFile(process.argv[2], "utf8", (...args) => console.log(args));
Run Code Online (Sandbox Code Playgroud)
@Tamas很棒,
但是如果您想知道ES6等新的javascript功能正在做什么,那么OP的一点建议.我将代码粘贴到Babeljs.io中试试看.
例如.你的代码 - >