提问人:M Navneet Krishna 提问时间:12/9/2022 更新时间:12/9/2022 访问量:16
动态函数表达式在使用第一类 [duplicate] 触发时不会抛出错误
On the fly function expression doesn't throw error when triggering with first class [duplicate]
问:
我正在学习Javascript,我遇到了函数表达式和第一类函数的这些概念。
虽然我确实理解它们的定义,但我无法理解为什么我的代码会以这种方式运行。
我有一个第一类函数,它接受 2 个参数 - 函数名称和文本。在尝试学习时,我最终用 2 种不同类型的函数调用它 - 一种具有预期参数,另一种具有意外参数
我的疑问是,当有意外的参数计数时,为什么没有抛出任何错误
代码片段
// function as a first-class function
function firstClassFunction(functionName, text) {
functionName("Hello from first-class function"+ " + " + text);
}
// function expression with on the fly function i.e. giving function on fly to first-class functions
firstClassFunction(function(text) {
console.log(text + " + " + "Hello from function expression on fly")
}, "Additional text")
// function expression with on the fly function i.e. giving function on fly to first-class functions
firstClassFunction(function() { // Not sure of this behaviour
console.log("Hello from function expression on fly")
}, "Additional text")
输出
Hello from first-class function + Additional text + Hello from function expression on fly
Hello from function expression on fly
我无法理解为什么输出的第 2 行在那里,为什么没有出现错误
提前致谢!
答:
0赞
dave
12/9/2022
#1
这就是 javascript 的工作方式,它不是一种严格类型的语言。您可以将更多参数/更少参数传递给它期望的函数。你甚至可以得到你不知道会存在的论点:
function demo() {
console.log(Array.from(arguments))
}
demo('a', 'b')
如果你想要更多的类型安全性,我建议你研究一下打字稿。
评论