整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢(xún)熱線(xiàn):

          JavaScript函數(shù)介紹:5分鐘了解JavaScript

          么是函數(shù)?

          把一段相對(duì)獨(dú)立的具有特定功能的代碼塊封裝起來(lái),形成一個(gè)獨(dú)立實(shí)體,就是函數(shù),起個(gè)名字(函數(shù)名),在后續(xù)開(kāi)發(fā)中可以反復(fù)調(diào)用。函數(shù)的作用就是封裝一段代碼,將來(lái)可以重復(fù)使用。推薦了解黑馬程序員web前端課程。

          為什么要使用函數(shù)?為了解決代碼的重用!減少代碼量。

          函數(shù)的分類(lèi)

          系統(tǒng)內(nèi)置函數(shù) 和 程序員自定義函數(shù)

          定義函數(shù)

          function 函數(shù)名([參數(shù)列表]){
              函數(shù)體
          }

          結(jié)構(gòu)說(shuō)明:

          ·function它是定義函數(shù)的關(guān)鍵字 不可以省略。

          ·函數(shù)名它的命名規(guī)則與變量名是一樣的

          • (1)可以使用大小寫(xiě)英文字母、下劃線(xiàn)(_)、美元符號(hào)($)、數(shù)字組成
          • (2)不能使用數(shù)字開(kāi)頭
          • (3)不能使用JS中的關(guān)鍵字和保留字作為函數(shù)名
          • (4)如果函數(shù)是由多個(gè)單詞組成的,那么可以使用下劃線(xiàn)連接法和駝峰法
          • (5)嚴(yán)格區(qū)分大小寫(xiě)

          ·函數(shù)名后面緊跟著一對(duì)小括號(hào) 這一對(duì)小括號(hào)不能省略

          ·小括號(hào)里面可能有參數(shù),我們將其稱(chēng)之為形參

          ·小括號(hào)后面緊跟著一對(duì)大括號(hào) 這一對(duì)大括號(hào)不能省略

          ·大括號(hào)里面是函數(shù)體

          注意:函數(shù)定義了一定要調(diào)用函數(shù)

          調(diào)用函數(shù)

          格式:

              函數(shù)名([實(shí)參列表])

          注意:在定義函數(shù)時(shí)如果有形參 反過(guò)來(lái)說(shuō) 在調(diào)用的時(shí)候也要有實(shí)參 但是這個(gè)不是絕對(duì)的!

          同名函數(shù)后面的會(huì)將前面的覆蓋

          函數(shù)一定是先定義后再調(diào)用

          函數(shù)的參數(shù)

          函數(shù)的參數(shù)分為兩種:

          形式參數(shù)和實(shí)際參數(shù)

          形式參數(shù):在定義函數(shù)的時(shí)候的參數(shù)就稱(chēng)之為形式參數(shù),簡(jiǎn)稱(chēng)“形參”。在定義函數(shù)的時(shí)候 在函數(shù)名的后面的小括號(hào)里面給的變量名。

          實(shí)際參數(shù):在調(diào)用函數(shù)的時(shí)候的參數(shù)就稱(chēng)之為實(shí)際參數(shù),簡(jiǎn)稱(chēng)“實(shí)參”。

          在一個(gè)函數(shù)中,參數(shù)的多少是根據(jù)功能來(lái)定義的!

          使用函數(shù)來(lái)動(dòng)態(tài)的輸出M行N列的表格

          一般在函數(shù)體里面不會(huì)有輸出語(yǔ)句,只會(huì)有一個(gè)return關(guān)鍵字,將我們要輸出的內(nèi)容返回給函數(shù)的調(diào)用者。

          ·return在英文中表示“返回”的意思

          ·return關(guān)鍵字是在函數(shù)體里面使用。

          它在函數(shù)體使用有兩層含義:

          1. 當(dāng)函數(shù)體里面遇到了return關(guān)鍵字以后,當(dāng)前的這個(gè)函數(shù)就不會(huì)再往下進(jìn)行執(zhí)行了。

          2.它會(huì)向函數(shù)的調(diào)用者返回?cái)?shù)據(jù)(重點(diǎn))返回值


          格式:return數(shù)據(jù);

          在調(diào)用函數(shù)時(shí)可以定義一個(gè)變量要接收到這個(gè)函數(shù)的返回值

          注意:

          我們?cè)谝院蟮墓ぷ髦校瘮?shù)體里面盡量不要有輸出語(yǔ)句(document.write alert console.log ),盡量的使用return關(guān)鍵字將數(shù)據(jù)返回給函數(shù)的調(diào)用者。

          特別強(qiáng)調(diào):

          ·在一個(gè)函數(shù)里面,return關(guān)鍵字可以有多個(gè),但是return只會(huì)執(zhí)行一次;

          ·return關(guān)鍵字它只能返回一個(gè)數(shù)據(jù),如果需要返回多個(gè)數(shù)據(jù),我們可以將多個(gè)數(shù)據(jù)使用數(shù)組的方式來(lái)保存,然后再將數(shù)組返回。


          匿名函數(shù)

          什么是匿名函數(shù)?

          沒(méi)有名字的函數(shù) 稱(chēng)之為匿名函數(shù)!注意:匿名函數(shù)在JS中使用最多。

          匿名函數(shù)也是需要調(diào)用的!

          將匿名函數(shù)賦值給變量或者是事件

          a)將匿名函數(shù)賦值給變量,然后通過(guò)變量名加上小括號(hào)來(lái)調(diào)用匿名函數(shù)

          b)將匿名函數(shù)賦值給事件 *****

          將匿名函數(shù)賦值給事件,那么匿名函數(shù)什么時(shí)候才會(huì)執(zhí)行?它要等到事件觸發(fā)了以后,匿名函數(shù)才會(huì)執(zhí)行。

          什么是變量的作用域?

          指變量在什么地方可以使用,什么地方不可以使用。

          變量作用域的分類(lèi)

          變量作用域分為:全局作用域和局部作用域。

          變量的作用域是通過(guò)函數(shù)來(lái)進(jìn)行劃分的。


          在函數(shù)外面定義的變量我們將其稱(chēng)為全局變量,它的作用域是全局的。

          全局作用域: 在任何地方都可以訪(fǎng)問(wèn)到的變量就是全局變量,對(duì)應(yīng)全局作用域

          局部作用域: 在固定的代碼片段內(nèi)可訪(fǎng)問(wèn)到的變量,最常見(jiàn)的例如函數(shù)內(nèi)部。對(duì)應(yīng)局部作用域(函數(shù)作用域)


          問(wèn):是否能夠提升局部變量的作用域呢?將局部變量的作用域提升至全局作用域。在函數(shù)里面定義的變量也能夠在函數(shù)外面訪(fǎng)問(wèn)到。

          只需要將函數(shù)里面定義的變量的var關(guān)鍵字給去掉就可以實(shí)現(xiàn)將局部變量的作用域提升至全局作用域。

          但是:并不建議直接就var 關(guān)鍵字給省略,我們建議在函數(shù)的外面定義一個(gè)同名的全局變量。

          果您已經(jīng)開(kāi)始學(xué)習(xí)JavaScript了,那是時(shí)候了解下基本函數(shù)了,本章節(jié)為大家分享JavaScript基本函數(shù)!

          什么是函數(shù)?

          一般來(lái)說(shuō),函數(shù)是經(jīng)過(guò)精心挑選和設(shè)計(jì)以執(zhí)行特定任務(wù)的子程序

          它是一個(gè)對(duì)象。要執(zhí)行一個(gè)函數(shù),您將調(diào)用它,也稱(chēng)為調(diào)用函數(shù)。您還可以將值傳遞給函數(shù)以在函數(shù)中使用。事實(shí)上,函數(shù)總是會(huì)返回一個(gè)值。因此,如果您不指定返回值, JavaScript 函數(shù)將返回 undefined

          什么是 JavaScript 函數(shù)?

          您可以通過(guò)多種方式在代碼中定義 JavaScript函數(shù)。首先,您將使用函數(shù)聲明。您可以使用關(guān)鍵字function創(chuàng)建函數(shù)聲明,然后添加函數(shù)的名稱(chēng)。當(dāng)您使用函數(shù)聲明時(shí),您將提升函數(shù)定義,這將允許您在定義函數(shù)之前使用它。

          接下來(lái),您有一個(gè)任務(wù) JavaScript 函數(shù)表達(dá)式。這定義了一個(gè)匿名或命名的名字 JavaScript 函數(shù)。匿名函數(shù)是尚未命名的函數(shù)。因?yàn)楹瘮?shù)表達(dá)式不能被提升,所以在定義它們之前不能使用它們。

          創(chuàng)建函數(shù)表達(dá)式的較短語(yǔ)法是箭頭函數(shù)。這種類(lèi)型的 JavaScript 函數(shù)不會(huì)創(chuàng)建自己的值。它僅用于編寫(xiě)不同的功能。

          參數(shù)(arguments)和參數(shù)(parameters)

          您可能聽(tīng)說(shuō)過(guò)“arguments”和“parameters”這兩個(gè)術(shù)語(yǔ)可以互換使用,這可能會(huì)導(dǎo)致您認(rèn)為它們是同一個(gè)東西。雖然這兩個(gè)術(shù)語(yǔ)在涉及 JavaScript 函數(shù)時(shí)非常相似,但您應(yīng)該了解一些非常重要的區(qū)別。

          參數(shù)用于定義JavaScript 函數(shù)。這意味著參數(shù)是在定義 JavaScript 函數(shù)是最初創(chuàng)建的名稱(chēng)。在進(jìn)行函數(shù)定義時(shí),您可能會(huì)傳遞多達(dá) 255 個(gè) JavaScript 參數(shù)。使用逗號(hào)將參數(shù)與下一個(gè)參數(shù)隔開(kāi)。

          如何調(diào)用函數(shù)

          當(dāng)您調(diào)用JavaScript 函數(shù)時(shí),您正在執(zhí)行該函數(shù),也稱(chēng)為調(diào)用它。要調(diào)用函數(shù),首先添加JavaScript 函數(shù)的名稱(chēng),后跟兩個(gè)括號(hào)。為了幫助您更好地理解 JavaScript的這個(gè)組件。

          如果您當(dāng)前使用的是Google Chrome,請(qǐng)打開(kāi)開(kāi)發(fā)者控制臺(tái)。這將允許您練習(xí) JavaScript 函數(shù)。要打開(kāi)此開(kāi)發(fā)人員控制臺(tái),請(qǐng)按 Ctrl + Shift + J(對(duì)于 Windows)Cmd + Opt + J(對(duì)于 Mac)

          首先,讓我們定義一個(gè)名為 logIt的 JavaScript 函數(shù)。這個(gè) JavaScript 函數(shù)將有一個(gè)參數(shù):“city”。執(zhí)行完此函數(shù)后,我們將名稱(chēng)記錄到控制臺(tái)中。它看起來(lái)像這樣:

          如果你想調(diào)用這個(gè)函數(shù),你可以調(diào)用它并將它傳遞給一個(gè)參數(shù)。在此示例中,JavaScript 函數(shù)名為 Dallas。它看起來(lái)像這樣:

          如果您的函數(shù)沒(méi)有任何參數(shù),則可以使用一組空括號(hào)來(lái)調(diào)用它。它看起來(lái)像這樣;

          什么是 JavaScript 函數(shù)返回?

          在 JavaScript 中,除非您另行指定,否則每個(gè)函數(shù)都將返回undefined。讓我們通過(guò)調(diào)用一個(gè)空的JavaScript 函數(shù)

          在上面的示例中,JavaScript 函數(shù)將返回 undefined。要自定義它將返回什么,我們可以使用關(guān)鍵字“return”,然后是我們希望它返回的值。

          在上面的示例中,我們已經(jīng)告訴 JavaScript 函數(shù)我們希望它返回false。調(diào)用此函數(shù)允許這種情況發(fā)生。這很重要,因?yàn)楹瘮?shù)返回的值將返回給函數(shù)的調(diào)用者。

          表達(dá)式將創(chuàng)建一個(gè) JavaScript 函數(shù),該函數(shù)將給出的一個(gè)值是什么 num 參數(shù)的兩倍的值。然后,您可以調(diào)用此 JavaScript 函數(shù)并未將返回的值保存到變量中:

          注銷(xiāo)此測(cè)試值會(huì)返回結(jié)果為 9。關(guān)于 return 語(yǔ)句的另一個(gè)重要規(guī)則是它會(huì)立即停止函數(shù)。

          JavaScript 函數(shù)對(duì)象

          函數(shù)本質(zhì)上是一個(gè)函數(shù)對(duì)象。這是一個(gè)事實(shí),即如果某些東西不是原始的,那么它就是一個(gè)對(duì)象。JavaScript對(duì)象用途廣泛;它甚至可以讓我們將 JavaScript 中的函數(shù)作為參數(shù)移動(dòng)到另一個(gè) JavaScript 函數(shù)。

          當(dāng)一個(gè) JavaScript 函數(shù)接受另一個(gè)參數(shù)函數(shù)時(shí),這是一個(gè)高階函數(shù)。無(wú)論您目前是否參加了會(huì)議 JavaScript 訓(xùn)練營(yíng),您很可能已經(jīng)在 JavaScript 使用過(guò)一個(gè)高階函數(shù),但并沒(méi)有意識(shí)到這一點(diǎn)。這方面的兩個(gè)例子是Array.prototype.filterArray.prototype.mapand。這些只是眾多高階函數(shù)中的一小部分。

          總結(jié):總而言之,JavaScript 函數(shù)是一個(gè)對(duì)象。它是子程序的一部分,其目標(biāo)是完成一種特定類(lèi)型的任務(wù)。一個(gè) JavaScript 函數(shù)被提升,而一個(gè)表達(dá)式?jīng)]有。要執(zhí)行 JavaScript 函數(shù),您將調(diào)用它,這稱(chēng)為調(diào)用函數(shù)。您也可以將值傳遞給函數(shù),以便在函數(shù)中使用它,也稱(chēng)為參數(shù),而其本身的值是參數(shù)。一個(gè)函數(shù)總是會(huì)返回一個(gè)值,但是 JavaScript 中沒(méi)有返回值的函數(shù)會(huì)以未定義的形式返回。

          avaScript 函數(shù)語(yǔ)法

          函數(shù)就是包裹在花括號(hào)中的代碼塊,前面使用了關(guān)鍵詞 function:

          function functionname()

          {

          這里是要執(zhí)行的代碼

          }

          當(dāng)調(diào)用該函數(shù)時(shí),會(huì)執(zhí)行函數(shù)內(nèi)的代碼。

          可以在某事件發(fā)生時(shí)直接調(diào)用函數(shù)(比如當(dāng)用戶(hù)點(diǎn)擊按鈕時(shí)),并且可由 JavaScript 在任何位置進(jìn)行調(diào)用。

          提示:JavaScript 對(duì)大小寫(xiě)敏感。關(guān)鍵詞 function 必須是小寫(xiě)的,并且必須以與函數(shù)名稱(chēng)相同的大小寫(xiě)來(lái)調(diào)用函數(shù)。

          實(shí)例:

          調(diào)用帶參數(shù)的函數(shù)

          在調(diào)用函數(shù)時(shí),您可以向其傳遞值,這些值被稱(chēng)為參數(shù)。

          這些參數(shù)可以在函數(shù)中使用。

          您可以發(fā)送任意多的參數(shù),由逗號(hào) (,) 分隔:

          myFunction(argument1,argument2)

          當(dāng)您聲明函數(shù)時(shí),請(qǐng)把參數(shù)作為變量來(lái)聲明:

          function myFunction(var1,var2) { 這里是要執(zhí)行的代碼 }

          變量和參數(shù)必須以一致的順序出現(xiàn)。第一個(gè)變量就是第一個(gè)被傳遞的參數(shù)的給定的值,以此類(lèi)推。

          實(shí)例:

          就會(huì)彈出:

          函數(shù)很靈活,您可以使用不同的參數(shù)來(lái)調(diào)用該函數(shù),這樣就會(huì)給出不同的消息

          實(shí)例:

          這里就不給截彈框圖了。

          帶有返回值的函數(shù)

          有時(shí),我們會(huì)希望函數(shù)將值返回調(diào)用它的地方。

          通過(guò)使用 return 語(yǔ)句就可以實(shí)現(xiàn)。

          在使用 return 語(yǔ)句時(shí),函數(shù)會(huì)停止執(zhí)行,并返回指定的值。

          語(yǔ)法

          function myFunction()

          {

          var x=5;return x;

          }

          上面的函數(shù)會(huì)返回值 5。

          注釋?zhuān)赫麄€(gè) JavaScript 并不會(huì)停止執(zhí)行,僅僅是函數(shù)。JavaScript 將繼續(xù)執(zhí)行代碼,從調(diào)用函數(shù)的地方。

          函數(shù)調(diào)用將被返回值取代:

          var myVar=myFunction();

          myVar 變量的值是 5,也就是函數(shù) "myFunction()" 所返回的值。

          即使不把它保存為變量,您也可以使用返回值:

          document.getElementById("demo").innerHTML=myFunction();

          "demo" 元素的 innerHTML 將成為 5,也就是函數(shù) "myFunction()" 所返回的值。

          您可以使返回值基于傳遞到函數(shù)中的參數(shù):

          實(shí)例:

          計(jì)算兩個(gè)數(shù)字的乘積,并返回結(jié)果:

          "demo" 元素的 innerHTML 將是:12;注釋的求余。

          在您僅僅希望退出函數(shù)時(shí) ,也可使用 return 語(yǔ)句。返回值是可選的:

          function myFunction(a,b) { if (a>b) { return; } x=a+b }

          如果 a 大于 b,則上面的代碼將退出函數(shù),并不會(huì)計(jì)算 a 和 b 的總和。

          局部 JavaScript 變量

          在 JavaScript 函數(shù)內(nèi)部聲明的變量(使用 var)是局部變量,所以只能在函數(shù)內(nèi)部訪(fǎng)問(wèn)它。(該變量的作用域是局部的)。

          您可以在不同的函數(shù)中使用名稱(chēng)相同的局部變量,因?yàn)橹挥新暶鬟^(guò)該變量的函數(shù)才能識(shí)別出該變量。

          只要函數(shù)運(yùn)行完畢,本地變量就會(huì)被刪除。

          全局 JavaScript 變量

          在函數(shù)外聲明的變量是全局變量,網(wǎng)頁(yè)上的所有腳本和函數(shù)都能訪(fǎng)問(wèn)它。

          JavaScript 變量的生存期

          JavaScript 變量的生命期從它們被聲明的時(shí)間開(kāi)始。

          局部變量會(huì)在函數(shù)運(yùn)行以后被刪除。

          全局變量會(huì)在頁(yè)面關(guān)閉后被刪除。

          向未聲明的 JavaScript 變量來(lái)分配值

          如果您把值賦給尚未聲明的變量,該變量將被自動(dòng)作為全局變量聲明。

          這條語(yǔ)句:carname="Volvo";

          將聲明一個(gè)全局變量 carname,即使它在函數(shù)內(nèi)執(zhí)行。


          主站蜘蛛池模板: 国产拳头交一区二区| 国产精品亚洲一区二区无码| 91精品一区二区综合在线| 色一情一乱一伦一区二区三区日本| 久久精品免费一区二区| 在线一区二区三区| 欧美日本精品一区二区三区 | 东京热无码一区二区三区av| 日韩少妇无码一区二区三区| 国产免费伦精品一区二区三区| 精品伦精品一区二区三区视频 | 国产成人一区二区三区电影网站| 成人欧美一区二区三区在线视频| 亚洲熟妇无码一区二区三区导航| 中文字幕在线看视频一区二区三区 | 亚洲香蕉久久一区二区| 九九无码人妻一区二区三区| 精品国产一区二区三区AV性色| 亚洲熟女一区二区三区| 日韩AV片无码一区二区不卡| 国产在线精品一区二区夜色| 日本一区二区三区爆乳| 免费视频精品一区二区| 久久中文字幕一区二区| 精产国品一区二区三产区| 一区二区高清在线观看| 91一区二区三区四区五区| 在线视频精品一区| 国产无套精品一区二区| 日韩免费一区二区三区| 福利一区二区三区视频在线观看| 国产综合视频在线观看一区| 精品一区二区三区无码免费视频| 一区二区精品在线观看| 在线成人一区二区| 精品国产AV一区二区三区| 久久国产三级无码一区二区| 国产一区二区在线视频播放| 亚洲乱码av中文一区二区| 亚洲国产高清在线精品一区| 精品一区二区三区视频|