天天看點

JavaScript函數聲明和調用、有參函數和無參函數、傳回值

<前言!>JavaScript變量的聲明     <變量是存儲資料的容器>

js中變量的聲明方式有兩種  

var 是聲明變量的關鍵字 <下面是有關鍵字和無關鍵字的差別>

1、顯式聲明 

<span style="font-size:18px;">var nSom=886;</span>
           

2、隐式聲明

<span style="font-size:18px;">nSom=884;</span>
           

變量聲明通常我使用匈牙利命名法: 類型字首+首字母大寫 簡單易懂       <詳細變量聲明請看博文:javaScript資料類型、變量命名規範>

s:表示字元串.n:表示數字.b:表示邏輯. a:表示數組.r:表示正規表達式.f:表示函數 .o:表示對象 .g:表示全局變量.

1、JavaScript的函數聲明   <個人了解:函數是由事件驅動的或當函數調用時執行的可重複利用 的代碼塊 >

函數的聲明一

function css(obj, name, value){
				if(arguments.length==2)	//擷取
				{
					return obj.style[name];
				}
				else
				{
					obj.style[name]=value;
				}
			}
           

這樣的方法聲明一個函數  而第二種方法更像是表達式一樣聲明一個函數

函數的聲明二

var css=function(obj, name, value){
				if(arguments.length==2)	//擷取
				{
					return obj.style[name];
				}
				else
				{
					obj.style[name]=value;
				}
			}
           

兩種函數聲明辦法的差别 JavaScript的編譯器對函數聲明與函數表達式并不是統一對待的, 對于第一種方法明顯是會優先編譯. 確定函數在調用之前已經被全部 解析了,而第二種類似函數表達式的聲明函數的方法,隻有當函數中的代碼塊被調用才會進行解析<每次調用都需要編譯解析>,so在通常的使用中,我們是用第一種函 數的聲明多一點< 如果以函數聲明的形式去定義這兩種定義的函數時,第二種會報錯,原因是第二種寫法不支援将調用語句寫在函數聲明之前>.

2、JavaScript函數的調用   <聲明了就要調用才會執行,通俗一點就是聲明了不調用,那你聲明幹啥?>

代碼如下:

<script type="text/javascript"> 
					    function sum(a,b) { //函數聲明辦法一
					      return a+b;       //傳回
					    } 
					     alert(sum(8,6));//函數的調用
				 <span style="white-space:pre">	</span></script>
           

這是簡單的函數聲明後調用,聲明函數後 隻有當調用了才會執行,不然就會和無用的代碼塊一樣.<除非加入自執行符号!>

3、JavaScript有參函數與無參函數  <前言:參數用于将資料傳遞到函數内部,有了參數之後函數能進行封裝,更好的進行二次使用.>

個人了解歡迎指正:無參函數:是針對某個局部變量 隻能一次使用,而不進行封裝的函數, 通常隻執行一次

 有參函數:利于封裝,能多次使用,很友善,是以<能夠整理出有參函數的辦法時盡量整理,達到多次循環使用>

下面是代碼:

function aa(b,c){//<函數的聲明aa> 當aa(b,c)是有參函數  當aa()是無函數   b,c是形參 
				alert(b+c);  //b帶進去,是形參
			}
			window.οnlοad=function (){
				aa('4','8')  // 實參/常量  實參傳給形參 <函數的調用>//aa('4','8')裡面的叫做實參,真實的數值,常量。
			};
			//函數的傳參:實參給形參的過程
           

在例子中我們聲明了有參函數aa 當有參函數aa後面的()括号裡沒有參數的時候,那時aa就是無參函數, 代碼中的b和c作為一個形參整理一下:函數首部的小括号沒有參數就是無參函數,參數的作用是可以代替多次調用函數時,函數中部分需要改變的值. 參數分為實參和形參.

下面說一下什麼是形參什麼是實參

1、形參 解析:全稱"形式參數",用于定義方法的時候使用的參數,目的用來接收調用該方法時傳遞的參數當隻有在被調用時才會配置設定記憶體單元,在調用結束,即刻釋放所配置設定的記憶體單元是以,隻在方法内才有效<通常我們使用在函數中多一丢丢>

2、實參 解析:全稱"實際參數",用于調用時傳遞給方法的參數,即傳遞給被調用方法的值,預先建立并賦予确定值,也可将實參看做常量

3、實參傳遞給形參的傳值調用傳值調用中,傳遞的參數類型是為常用的基本資料類型,參數視為形參,這裡形參是可看做是未指派的局部變量.

4、引用調用:引用調用中,在Java中,傳遞的參數類型是為引用資料類型,參數視為實參。在調用機制裡,将實參的位址傳遞給了形參,形參上的改變實際上都發生在實參上,可以視為全局變量。

好,我們繼續

下面是一段實參傳參給形參的例子

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>傳參</title>
		<style type="text/css">
			body{padding: 50px;}
			.box{width: 200px;height: 200px;background: red;}
		</style>
		<script type="text/javascript">
<span style="white-space:pre">			</span>//函數的傳參:實參給形參的過程
			//傳參的例子
			function bianda(wd,w400){ //形參
				var ob=document.getElementById('one');
				ob.style[wd]=w400;
				ob.style.height='400px';
				ob.style.backgroundColor='green';
			}
			function bianx(wd,w200){ //形參
				var ob=document.getElementById('one');
				ob.style[wd]=w200;
				ob.style.height='200px';
				ob.style.backgroundColor='red';
			}
		</script>
	</head>
	<body>										<!--實參-->
		<div class="box" id="one" οnmοuseοver="bianda('width','400px')" οnmοuseοut="bianx('width','200px')"></div>
	</body>
</html>
           

一般我們可以這樣了解傳參:實參給形參的過程.

4、JavaScript傳回值   <除非必要的傳回,不然可有可無>

js中 return 是傳回值它能傳回控制以及傳回函數處理的結果

首先說傳回處理 文法: return 表達式; 語句結束函數執行,之前調用的函數,而且把表達式的值作為函數處理過的結果

接着是傳回控制 文法: return; <傳回控制是沒有函數結果的>

在有些情況下,為事件處理函數傳回false,可以防止預設的事件行為

return false就相當于終止符阻止事件的運作 而return true 就相當于執行符。

在js中return false的作用一般是用來取消預設動作的。比如你單擊一個連結除了觸發你的

onclick事件(如果你指定的話)以外還要觸發一個預設事件就是執行頁面的跳轉。是以如果你想取消對象的預設動作就可以return false。

首先在js中,我們常用return false來阻止送出表單或者繼續執行下面的代碼,通俗的來說就是阻止執行預設的行為。

return false 隻在目前函數有效,不會影響其他外部函數的執行。

retrun true; 傳回正确的處理結果。

return false;分會錯誤的處理結果,終止處理。

return;把控制權傳回給頁面。

繼續閱讀