gpt4 book ai didi

javascript - 高阶函数 Javascript

转载 作者:行者123 更新时间:2023-11-30 13:48:20 25 4
gpt4 key购买 nike

我是 Javascript 的新手,对高阶函数的概念和使用函数作为参数的概念很坚定。

我从网上弄了两个代码例子,我不明白会发生什么。

第一个,输出将为 0,我无法打印 t1 和 t2 的时间(我尝试了 console.log(t1),但它变成了引用错误)。我想知道为什么它变成了0。另外,我不知道 funcbody 内部的 funcParameter() 如何为该函数工作,尽管我知道 funcparameter() 是回调函数,它是 addOneToOne()。

第二个,输出将是 3。但即使我没有将参数放入 addTwo(),它怎么可能是 3?如果我没有在参数中放置任何东西,num 将自动为 0 或未定义?

我很抱歉有很多问题,但如果你能帮助我,我真的很感激。

//1st code
const timeFuncRuntime = funcParameter => {
let t1 = Date.now();//
funcParameter();
let t2 = Date.now();//
return t2 - t1;
}

const addOneToOne = () => 1 + 1;

timeFuncRuntime(addOneToOne);

console.log(timeFuncRuntime(addOneToOne))//0


//2nd code

const addTwo = num => num + 2;


const checkConsistentOutput = (func, val) => {
let firsttry = func(val);
let secondtry = func(val);
if(firsttry === secondtry){
return firsttry;
} else {
return 'This function returned inconsistent results';
}
};

checkConsistentOutput(addTwo,1)

console.log(checkConsistentOutput(addTwo,1))//3

最佳答案

1:t1变量的作用域仅限于功能 block 。您可以阅读有关变量范围的更多信息 here

2:您正在使用 val 作为函数参数,val 的值为 1。

1 + 2 = 3

1 在此行中:

checkConsistentOutput(addTwo,1)

关于javascript - 高阶函数 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58838565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com