【发布时间】:2020-03-14 21:29:20
【问题描述】:
这是一个基本的 javascript 问题,我只是想更好地理解。我试图了解我将返回真实声明放在哪里是否重要。下面是示例代码:
function isValid(input) {
for (var i = 0; i < input.length - 2; i++) {
var charOne = input.charAt(i);
var charTwo = input.charAt(i + 1);
var charThree = input.charAt(i + 2);
if (charOne === charTwo && charOne === charThree) {
return false;
}
return true;
}
}
isValid("ABB");
这会返回 true,但如果我将 return true 语句放在这里,也会返回 true:
function isValid(input) {
for (var i = 0; i < input.length - 2; i++) {
var charOne = input.charAt(i);
var charTwo = input.charAt(i + 1);
var charThree = input.charAt(i + 2);
if (charOne === charTwo && charOne === charThree) {
return false;
}
}
return true; // Moved this return statement
}
isValid("ABB");
一种方式错误,另一种方式正确吗?
【问题讨论】:
-
当然很重要;
return语句的两个位置导致完全不同的程序。首先,for循环保证在第一次迭代期间退出。第二个将处理i的每个值,直到满足条件或循环条件失败。尝试使用输入"ABCCC"运行每个版本的函数
标签: javascript function boolean