gpt4 book ai didi

javascript - javascript 中 return (function()) 和 return true 之间的区别

转载 作者:行者123 更新时间:2023-12-01 04:10:20 25 4
gpt4 key购买 nike

我有以下示例文档

<!doctype html>
<html>
<head>
<title>My home page</title>
</head>
<body>
<h1>My home page</h1>
<p>Hello, I am Marijn and this is my home page.</p>
<p>I also wrote a book! Read it
<a href="http://eloquentjavascript.net">here</a>.</p>
</body>
</html>

我编写了一个递归函数来查找字符串是否在文档中

function talksAbout(node, string) {


if(node.nodeType == document.ELEMENT_NODE){
for(var i=0;i<node.childNodes.length;i++){
if(talksAbout(node.childNodes[i],string))
return true;
}
return false;
}
else if(node.nodeType == document.TEXT_NODE){
return (node.nodeValue.indexOf(string) > -1);
}
}

console.log(talksAbout(document.body,"wrote"));

但是当我更改第三行中的 if 语句时

if(talksAbout(node.childNodes[i],string))
return true;

简单

return taksAbout(node.childNodes[i],string)

它显示了错误的答案。有人能找出两者之间的区别吗?

最佳答案

代码

if(talksAbout(node.childNodes[i],string))
return true;

检查调用的返回结果,如果结果为 true,则返回 true。这样做:

return taksAbout(node.childNodes[i],string)

返回迭代的第一项,而不检查其余项。 ;)

关于javascript - javascript 中 return (function()) 和 return true 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41562304/

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