猿问

想问一下关于getNextElement这个函数的问题

function getNextElement(node){
if(node.nodeType == 1){
return node;
}
if(node.nextSibling){
return getNextElement(node.nextSibling);
}

return null;
}

第一个问题 当参数在第一个if里面如果为true执行完之后 还会不会去执行第二个if
第二个问题  当我传入实参比如说a.nextSibling 那第一个if为false对吗?那是  a.nextSibling的节点  传入第二个if语句还是a.nextSibling传入这个if语句。

谢谢!

Beckybei
浏览 1795回答 1
1回答

闹小志

一、第一个问题:当执行到return的时候证明这个函数已经结束,所以不会去执行第二个if。二、第二个问题:很明显在参数这个问题上你有些混乱了。if是true还是false和你传的参数形式无关,是和条件有关的。不管你传的实参是a,还是a.nextSibling,在函数中都只是一个node而已。你传a,if中的判断就是a.nodeType==1,你传a.nextsibling,if中的判断就是a.nextSibling.nodeType==1;同理,当传的参数是a.nextSibling,那第二个if语句中的判断就是a.nextSibling.nextSibling。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答