求問(wèn)大神,js中的return在此函數(shù)中的意義。謝謝!
求大神解釋一下return在這個(gè)例子中是什么意思?
我一知半解,看了一個(gè)大神的解答大概感覺(jué)和計(jì)算器上的“=”是一個(gè)概念,但是放在這里是為什么呢?return x的上一段中已經(jīng)有x=x.nextSibling這個(gè)循環(huán)條件了,是為什么呢?麻煩通俗易懂一下 謝謝了。
<!DOCTYPE?HTML>
<html>
<head>
<meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8">
<title>nextSibling</title>
</head>
<body>
<ul?id="u1">???
????????????<li?id="a">javascript</li>???
????????????<li?id="b">jquery</li>???
????????????<li?id="c">html</li>???
????????</ul>???
????????<ul?id="u2">???
????????????<li?id="d">css3</li>???
????????????<li?id="e">php</li>???
????????????<li?id="f">java</li>???
????????</ul>???
<script?type="text/javascript">
????function?get_nextSibling(n){
????????var?x=n.nextSibling;???????????//x=
????????while?(x?&&?x.nodeType!=1){
????????????x=x.nextSibling;
????????}
????????return?x;
????}
????var?x=document.getElementsByTagName("li")[0];
????document.write(x.nodeName);
????document.write("?=?");
????document.write(x.innerHTML);
????
????var?y=get_nextSibling(x);
????
????if(y!=null){
????????document.write("<br?/>nextsibling:?");
????????document.write(y.nodeName);
????????document.write("?=?");
????????document.write(y.innerHTML);
????}else{
??????document.write("<br>已經(jīng)是最后一個(gè)節(jié)點(diǎn)");??????
????}
???
???function?get_previousSibling(n){
???????var?x=n.previousSibling;
???????while(x?&&?x.nodeType!=1){
???????????x=x.previousSibling;
???????}
???????return?x;
???}
????
</script>
</body>
</html>
2016-03-10
舉個(gè)簡(jiǎn)單的例子,以下是計(jì)算和的函數(shù),
function add(x,y){
var sum=x+y;
}
計(jì)算2+3=?
調(diào)用函數(shù):add(2,3);
然后我想輸出結(jié)果,document.write(sum);
然后就會(huì)發(fā)現(xiàn)報(bào)錯(cuò)了sum is not defined,這是說(shuō)sum沒(méi)有聲明呀,
問(wèn)題是 在add函數(shù)里面不是有寫(xiě)var sum=x+y;為啥不起作用類(lèi),
因?yàn)檫@里定義的sum是局部變量,出了這個(gè)函數(shù)它就不管用了呀,
這樣怎么得到結(jié)果類(lèi),也只能老老實(shí)實(shí)寫(xiě)下return了,
function add(x,y){
var sum=x+y;
return sum;
}
然后輸出結(jié)果可以直接document.write(add(2,3));
也可以先承接結(jié)果,var sum=add(2,3);document.write(sum);
而return就是用來(lái)返回結(jié)果的的,同時(shí),return也是可以終止函數(shù)的,比如
function add(x,y){
var sum=x+y;
return sum;
alert(1);
}
執(zhí)行add(2,3);發(fā)現(xiàn)根本不會(huì)彈出1,因?yàn)閞eturn后面的alert是不會(huì)執(zhí)行的。