求問大神,js中的return在此函數中的意義。謝謝!
求大神解釋一下return在這個例子中是什么意思?
我一知半解,看了一個大神的解答大概感覺和計算器上的“=”是一個概念,但是放在這里是為什么呢?return x的上一段中已經有x=x.nextSibling這個循環條件了,是為什么呢?麻煩通俗易懂一下 謝謝了。
<!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>已經是最后一個節點");??????
????}
???
???function?get_previousSibling(n){
???????var?x=n.previousSibling;
???????while(x?&&?x.nodeType!=1){
???????????x=x.previousSibling;
???????}
???????return?x;
???}
????
</script>
</body>
</html>
2016-03-10
舉個簡單的例子,以下是計算和的函數,
function add(x,y){
var sum=x+y;
}
計算2+3=?
調用函數:add(2,3);
然后我想輸出結果,document.write(sum);
然后就會發現報錯了sum is not defined,這是說sum沒有聲明呀,
問題是 在add函數里面不是有寫var sum=x+y;為啥不起作用類,
因為這里定義的sum是局部變量,出了這個函數它就不管用了呀,
這樣怎么得到結果類,也只能老老實實寫下return了,
function add(x,y){
var sum=x+y;
return sum;
}
然后輸出結果可以直接document.write(add(2,3));
也可以先承接結果,var sum=add(2,3);document.write(sum);
而return就是用來返回結果的的,同時,return也是可以終止函數的,比如
function add(x,y){
var sum=x+y;
return sum;
alert(1);
}
執行add(2,3);發現根本不會彈出1,因為return后面的alert是不會執行的。