整理Javascript函數(shù)學(xué)習(xí)筆記
1、什么是函數(shù)
如果需要多次使用同一段代碼,可以把它們封裝成一個(gè)函數(shù)。函數(shù)(function)就是一組允許在你的代碼里隨時(shí)調(diào)用的語句。每個(gè)函數(shù)實(shí)際上是一個(gè)短小的腳本。
如:要完成多組數(shù)和的功能。
var sum; sum = 3+2; alear(sum); sum = 7+8; alear(sum); ......//不停的重復(fù)兩行代碼
如果要實(shí)現(xiàn)8組數(shù)的和,就需要16行代碼,實(shí)現(xiàn)的越多,代碼行也就越多。所以我們可以把完成特定功能的代碼塊放到一個(gè)函數(shù)里,直接調(diào)用這個(gè)函數(shù),就省去重復(fù)輸入大量代碼的麻煩。使用函數(shù)完成:
function add(a,b){ sum = a+b;//只需要寫一次就可以 }; add2(3,2); add2(7,8); ......//只需要調(diào)用函數(shù)就可以
2、定義函數(shù)
定義函數(shù)語法
function 函數(shù)名(參數(shù)argument){ 函數(shù)體statements; } //function定義函數(shù)的關(guān)鍵字,“函數(shù)名”你為函數(shù)取的名字,“函數(shù)體”替換為完成特定功能的代碼。
function shout(){ var beatles = Array("John","Paul","George","Ringo"); for (var count = 0; count < beatles.length; count++){ alert(beatles[count]); } } //這個(gè)函數(shù)里面的循環(huán)語句將依次彈出對話框來顯示beatles里面內(nèi)容。 shout();調(diào)用函數(shù),執(zhí)行腳本里的動(dòng)作
完成對兩個(gè)數(shù)求和并顯示結(jié)果的功能:
<script type="text/javascript"> function add2(){ sum = 3+2; alert()sum; } add2(); </script>
3、函數(shù)調(diào)用
函數(shù)定義好后,是不能自動(dòng)執(zhí)行的,需要調(diào)用它,直接在需要的位置寫函數(shù)名。
第一種情況:在<script>標(biāo)簽內(nèi)調(diào)用。
<script type="text/javascript"> function add(){ sum = 1+1; alert(sum); } add();//調(diào)用函數(shù),直接寫函數(shù)名。 </script>
第二種情況:在HTML文件中調(diào)用,如通過點(diǎn)擊按鈕后調(diào)用定義好的函數(shù)。
<html> <head> <script type="text/javascript"> function add2(){ sum = 5 + 6; alert(sum); } </script> </head> <body> <form> <input type="button" value="click it" onclick="add2()"> //按鈕,onclick點(diǎn)擊事件,直接寫函數(shù)名 </form> </body> </html>
4、有參數(shù)的函數(shù)
其實(shí),定義函數(shù)還可以如下格式:
function 函數(shù)名(參數(shù)1,參數(shù)2){
函數(shù)代碼
}
在定義函數(shù)時(shí),你可以為它聲明任意多個(gè)參數(shù),只要用逗號把它們分隔開來就行。在函數(shù)內(nèi)部,你可以像使用普通變量那樣使用它的任何一個(gè)參數(shù)。
按照這個(gè)格式,函數(shù)實(shí)現(xiàn)任意兩個(gè)數(shù)的和應(yīng)該寫成:
function add2(x,y){ sum = x + y; document.write(sum); } //x和y則是函數(shù)的兩個(gè)參數(shù),調(diào)用函數(shù)的時(shí)候,我們可通過這兩個(gè)參數(shù)把兩個(gè)實(shí)際的加數(shù)傳遞給函數(shù)了。
實(shí)現(xiàn)如下功能:
定義函數(shù)實(shí)現(xiàn)三個(gè)數(shù)的和,函數(shù)名為add3。
計(jì)算5、8、3/7、1、4兩組三個(gè)數(shù)的和。
<script type="text/JavaScript"> function add3(x,y,z) { sum = x + y +z; document.write(x+"、"+y+"、"+z+"和:"+sum+"<br/>"); } add3(5,8,3); add3(7,1,4); </script>
5、返回值的函數(shù)
函數(shù)不僅能夠(以參數(shù)的形式)接收數(shù)據(jù),還能夠返回?cái)?shù)據(jù)。我們完全可以創(chuàng)建一個(gè)函數(shù)并讓它返回一個(gè)值、一個(gè)字符串、一個(gè)數(shù)組或是一個(gè)布爾值。這是需要用到return語句。
function multiply(num1,num2){ var total = num1*num2; return total; }
之前通過"document.write"把結(jié)果輸出來,現(xiàn)在使用函數(shù)輸出
我們只要把"document.write(sum)"這行改成如下代碼:
function add2(x,y){ sum = x + y; return sum; //返回函數(shù)值,return后面的值叫做返回值。 } //還可以通過變量存儲(chǔ)調(diào)用函數(shù)的返回值: result = add2(3,4);//語句執(zhí)行后,result變量中的值為7。
例:下面這個(gè)函數(shù)只有一個(gè)參數(shù)(一個(gè)華氏溫度值),它將返回一個(gè)數(shù)值(同一溫度的攝氏溫度值):
<script type="text/javascript"> function convertToCelsius (temp) { var result = temp - 32; result = result / 1.8; return result; } //函數(shù)的真正價(jià)值體現(xiàn)在,我們還可以把它們當(dāng)做一種數(shù)據(jù)類型來使用,這意味著可以把一個(gè)函數(shù)的調(diào)用結(jié)果賦給一個(gè)變量: var temp_fahrenheit = 95; var temp_celsius = convertToCelsius(temp_fahrenheit); alert(temp_celsius); </script>
在這個(gè)例子里,變量temp_celsius的值將是35,這個(gè)數(shù)值由convertToCelsius函數(shù)返回。
在命名變量時(shí),我用下劃線來分隔各個(gè)單詞;在命名函數(shù)時(shí),我從第二個(gè)單詞開始把每個(gè)單詞的第一個(gè)字母寫成大寫形式(也就是駝峰命名法)。
1)、變量的作用域
變量既可以是全局的,也可以是局部的。
全局變量(global variable)可以在腳本中的任何位置被引用。一旦你在某個(gè)腳本里聲明了一個(gè)全局變量,就可以從這個(gè)腳本中的任何位置------包括函數(shù)內(nèi)部------引用它。全局變量的作用域是整個(gè)腳本。
局部變量(local variable)只存在于聲明它的那個(gè)函數(shù)的內(nèi)部,在那個(gè)函數(shù)的外部是無法引用它的。局部變量的作用域僅限于某個(gè)特定的函數(shù)。
可以用var關(guān)鍵字明確地為函數(shù)變量設(shè)定作用域。
如果在某個(gè)函數(shù)中使用了var,那個(gè)變量就將被視為一個(gè)局部變量,它只存在于這個(gè)函數(shù)的上下文中;反之,如果沒有使用var,那個(gè)變量就將被視為一個(gè)全局變量,如果腳本里已經(jīng)存在一個(gè)與之同名的全局變量,這個(gè)函數(shù)就會(huì)改變那個(gè)全局變量值。
例子:
function square(num){ total = num*num; return total; } var total = 50; var number = square(20); alert(total);
這是錯(cuò)誤的,number的值為400,但是這里alert彈出的是total的值,應(yīng)該是50.
這些代碼將不可避免地導(dǎo)致全局變量total的值發(fā)生變化。
全局變量total的值變成了400.我的本意是讓square()函數(shù)只把它計(jì)算出來的平方值返回給變量number,但因?yàn)槲窗堰@個(gè)函數(shù)內(nèi)部total變量明確地聲明為局部變量,這個(gè)函數(shù)把名字同樣是total的那個(gè)全局變量的值也改變了。
把這個(gè)函數(shù)寫成如下的樣子才是正確的:
function square(num){ var total = num*num; return total; } var total = 50; var number = square(20); alert(total); </script>
正確結(jié)果:
以上就是關(guān)于Javascript函數(shù)的學(xué)習(xí)筆記,還涉及到了一些變量的知識(shí)點(diǎn),希望對大家的學(xué)習(xí)有所幫助。
相關(guān)文章
HTML 自動(dòng)伸縮的表格Table js實(shí)現(xiàn)
在開發(fā)的過程中,表格Table有個(gè)缺陷,如果一行中某個(gè)單元格的超過一行,表格就不夠美觀了。2009-04-04微信開發(fā) js實(shí)現(xiàn)tabs選項(xiàng)卡效果
這篇文章主要介紹了微信開發(fā)的學(xué)習(xí)筆記,js實(shí)現(xiàn)tabs選項(xiàng)卡效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10基于JavaScript FileReader上傳圖片顯示本地鏈接
這篇文章主要為大家詳細(xì)介紹了基于JavaScript FileReader上傳圖片顯示本地鏈接的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05訪問百度和谷歌網(wǎng)速測試的javascript代碼
訪問百度和谷歌網(wǎng)速測試的javascript代碼...2007-08-08JS實(shí)現(xiàn)定時(shí)任務(wù)每隔N秒請求后臺(tái)setInterval定時(shí)和ajax請求問題
這篇文章主要介紹了JS實(shí)現(xiàn)定時(shí)任務(wù)每隔N秒請求后臺(tái)setInterval定時(shí)和ajax請求 的相關(guān)資料,需要的朋友可以參考下2017-10-10PixiJS學(xué)習(xí)之Sprite類的使用詳解
Sprite 直譯為 “精靈”,是游戲開發(fā)中常見的術(shù)語,就是將一個(gè)角色的多個(gè)動(dòng)作放到一個(gè)圖片里,通過裁剪局部區(qū)域得到當(dāng)前的角色狀態(tài)圖。本文主要介紹了PixiJS中Sprite類的使用,需要的可以參考一下2023-02-02