摘要:在編寫處理對象的函數(shù)時,必須做出決定是希望這個函數(shù)修改其對象實參的的屬性,還是返回新對象。高階函數(shù)就是以形參或者返回函數(shù)的函數(shù),他們可以簡化集中程序設(shè)計任務(wù),可以減少腳本中的共同代碼數(shù)量。編寫一個函數(shù),返回一個給定字符在字符串中的出現(xiàn)次數(shù)。
主要總結(jié):
函數(shù)值是一個帶有參數(shù)的代碼塊,可以根據(jù)需要任意運行(調(diào)用)
調(diào)用一個函數(shù),我們會向它的形參傳送實參。多余的形參會被轉(zhuǎn)換為undefined。函數(shù)可以通過return語句向調(diào)用者返回結(jié)果。如果從來沒有執(zhí)行過return語句,則默認(rèn)返回undefined。
一種好的編程實踐是:在為函數(shù)做注釋時,應(yīng)當(dāng)說明這個函數(shù)做些什么,而不是它如何做。
在編寫處理對象的函數(shù)時,必須做出決定:是希望這個函數(shù)修改其對象實參的的屬性,還是返回新對象。
JavaScript變量要么具有全局作用域,要么具有函數(shù)(局部)作用域。
JavaScript有兩個屬性:length和prototype。prototype對象用于存儲一些屬性,可供該函數(shù)創(chuàng)建的所有對象訪問,實際上就是允許定義新類型。我們可以向函數(shù)提供更多屬性。
有的函數(shù)可以作為對象的屬性,有的函數(shù)可以通過this引用表達(dá)式引用對象的其他屬性,這種函數(shù)稱為方法。方法時OOP的核心概念。
高階函數(shù)就是以形參或者返回函數(shù)的函數(shù),他們可以簡化集中程序設(shè)計任務(wù),可以減少腳本中的共同代碼數(shù)量。
函數(shù)可以用函數(shù)聲明定義,可以直接使用函數(shù)表達(dá)式定義,也可以通過變量或?qū)ο髮傩灾付ê瘮?shù)表達(dá)式定義。函數(shù)聲明雖然方便,卻不能在某些上下文中使用,其作用域規(guī)則不夠直觀,會模糊一個事實:函數(shù)就是值,與其他值沒有區(qū)別
練習(xí):編寫一個函數(shù),返回兩個實參的最大值。
function large(x,y) { return x>y ? x : y; };
編寫一個函數(shù),返回兩個實參的平均值。
function mean(m1,m2) { return (m1+m2)/mean.length };
編寫一個函數(shù),返回一個數(shù)組中所有項目的平均值。
function arrMean(arr) { var sum = 0; for (var i=0;i解釋運行以下腳本結(jié)果,回答中應(yīng)當(dāng)涉及"結(jié)合律"一詞
var cubeOf = function (x) { return x*x*x; }; alert("魔方中共有:"+cubeOf(3)-1+" 個立方體");我們分析一下alert中的語句,從左至右,第一個是字符串,后接一個加號,則說明此加號是做字符串連接符使用。繼續(xù)往右,函數(shù)調(diào)用優(yōu)先級是比加號高的,所以先執(zhí)行函數(shù)調(diào)用,返回一個數(shù)字,再相加。此時應(yīng)該是"....:27",注意接下來,一對字符串與一個類型為數(shù)值的數(shù)字做減號運算得到什么?我們知道,這其實是隱式轉(zhuǎn)換數(shù)值的方法之一,所以JS會嘗試把之前所以的字符串轉(zhuǎn)換成數(shù)值類型來與1進(jìn)行計算,不信試一下alert("15"-1)。但是失敗了,所以會轉(zhuǎn)換為NaN,注意,此時數(shù)值類型是number,alert(typeof NaN),然后NaN與后面字符串繼續(xù)相加,又轉(zhuǎn)換成了字符串類型。最后得到一個類型為字符串的字符串。
編寫一個函數(shù),接受兩個數(shù)字,并返回介于這兩個值之間的一個隨機數(shù)
function random(n1,n2) { var randomArr = []; if (n1>n2) { for (var i=n2+1;i
編寫一個函數(shù)接受三個值,并返回其中值。三個數(shù)值的中值就是大于或等于另兩值的一個,小于或等于剩下的那個值。(尼瑪這形容)
中值也稱中位數(shù),即數(shù)據(jù)按升序或者降序排列,假如有n個數(shù)據(jù),當(dāng)n為偶數(shù)時,中位數(shù)為第n/2位數(shù)和第(n+2)/2位數(shù)的平均數(shù);如果n為奇數(shù),那么中位數(shù)為第(n+1)/2位數(shù)的值。
function midValue(n1,n2,n3) { var arr = [n1,n2,n3]; arr.sort(function (a,b) {return a-b}); // 升序排序 return arr[((arr.length+1)/2)-1]; // 獲得奇數(shù)位中位數(shù),但由于數(shù)組計算方式所以-1 };編寫一個函數(shù),返回一個給定數(shù)組中0的個數(shù)。
function numberOfZeros(arr) { var counter = 0; for (var i=0;i編寫一個函數(shù),返回一個給定字符在字符串中的出現(xiàn)次數(shù)。
function strNum(str,x) { var arr = String(str).split(""); var num = 0; alert(arr) for (var i=0;i
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/83054.html
摘要:類型沒有重載聲明了兩個同名函數(shù),而結(jié)果則是后面的函數(shù)覆蓋了前面的函數(shù)。引用的是函數(shù)據(jù)以執(zhí)行的環(huán)境對象函數(shù)屬性和方法表示函數(shù)希望接收的命名參數(shù)的個數(shù)。而自動創(chuàng)建的基本包裝類型的對象,則只存在于一行代碼的執(zhí)行瞬間,然后立即被銷毀。 Function類型 沒有重載 聲明了兩個同名函數(shù),而結(jié)果則是后面的函數(shù)覆蓋了前面的函數(shù)。 var addSomeNumber = function (num)...
摘要:微信小程序課程,面向所有具備前端基礎(chǔ)知識的同學(xué)官網(wǎng)訪問官網(wǎng)更快閱讀全部免費分享課程出品全網(wǎng)最新微信小程序基于最新版開發(fā)者工具之初中級培訓(xùn)教程分享。 ?? 微信小程序課程,面向所有具備前端基礎(chǔ)知識的同學(xué) ?? iKcamp官網(wǎng):http://www.ikcamp.com 訪問官網(wǎng)更快閱讀全部免費分享課程:《iKcamp出品|全網(wǎng)最新|微信小程序|基于最新版1.0開發(fā)者工具之初中級培訓(xùn)教...
摘要:微信小程序課程,面向所有具備前端基礎(chǔ)知識的同學(xué)官網(wǎng)訪問官網(wǎng)更快閱讀全部免費分享課程出品全網(wǎng)最新微信小程序基于最新版開發(fā)者工具之初中級培訓(xùn)教程分享。 ?? 微信小程序課程,面向所有具備前端基礎(chǔ)知識的同學(xué) ?? iKcamp官網(wǎng):http://www.ikcamp.com 訪問官網(wǎng)更快閱讀全部免費分享課程:《iKcamp出品|全網(wǎng)最新|微信小程序|基于最新版1.0開發(fā)者工具之初中級培訓(xùn)教...
摘要:微信小程序課程,面向所有具備前端基礎(chǔ)知識的同學(xué)官網(wǎng)訪問官網(wǎng)更快閱讀全部免費分享課程出品全網(wǎng)最新微信小程序基于最新版開發(fā)者工具之初中級培訓(xùn)教程分享。 ?? 微信小程序課程,面向所有具備前端基礎(chǔ)知識的同學(xué) ?? iKcamp官網(wǎng):http://www.ikcamp.com 訪問官網(wǎng)更快閱讀全部免費分享課程:《iKcamp出品|全網(wǎng)最新|微信小程序|基于最新版1.0開發(fā)者工具之初中級培訓(xùn)教...
閱讀 2959·2021-11-25 09:43
閱讀 3336·2021-11-24 09:39
閱讀 2844·2021-09-22 15:59
閱讀 2215·2021-09-13 10:24
閱讀 520·2019-08-29 17:02
閱讀 2111·2019-08-29 13:23
閱讀 3071·2019-08-29 13:06
閱讀 3550·2019-08-29 13:04