【发布时间】:2021-09-10 19:24:06
【问题描述】:
最近在学习node.js,发现了两个这样的代码片段:
片段 1:
const fs = require('fs')
fs.readFile("content.txt", "utf8", (err, msg) => {
console.log(msg);
})
片段 2:
const fs = require('fs')
fs.readFile("content.txt", (err, msg) => {
console.log(msg);
})
它们只有一个区别,Fragment 1 传递 'utf8' 作为第二个参数,而 Fragment 2 跳过传递它。而且虽然结果不同,但都可以正常运行,不会出现语法错误。
所以我想知道 javascript 方法如何能够跳过传递参数?我该如何定义这样的方法/函数?
【问题讨论】:
-
调用函数时参数的数量是可选的。通常函数会按类型检查参数(这些函数可以传递不同数量的参数),然后根据特定参数的类型执行替代代码。
-
该函数将确定参数的arity,并测试第二个参数是否为函数,然后根据该信息继续。
-
@Teemu 感谢您的回答,您的回答解决了我的困惑。
标签: javascript node.js