gpt4 book ai didi

javascript - 相互递归和 JSLint - 函数在定义之前被使用

转载 作者:搜寻专家 更新时间:2023-10-31 23:11:04 27 4
gpt4 key购买 nike

如果我编写以下代码,JSLint 会提示 'isOdd' 在定义之前被使用。有没有一种方法可以编写相互递归的代码并且仍然让 JSLint 满意?

var isEven = function(n) {
if (n === 0) {
return true;
}
return isOdd(n - 1);
};

var isOdd = function(n) {
if (n === 0) {
return false;
}
return isEven(n - 1);
};

最佳答案

对于 JSLint,您必须在文件顶部添加全局变量指令,以便它忽略临时“未定义”函数和变量的使用。

/*global isOdd */

var isEven = function(n) {
if (n === 0) {
return true;
}
return isOdd(n - 1);
};

var isOdd = function(n) {
if (n === 0) {
return false;
}
return isEven(n - 1);
};

您也可以在顶部声明 isOdd,但随后您将更改您的实际代码,因为 linting 程序不理解提升:

var isOdd;

var isEven = function(n) {
if (n === 0) {
return true;
}
return isOdd(n - 1);
};

isOdd = function(n) {
if (n === 0) {
return false;
}
return isEven(n - 1);
};

关于javascript - 相互递归和 JSLint - 函数在定义之前被使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45808062/

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