return
語句向調用者返回結果。若是歷來沒有執行過return
語句,則默認返回undefined
。 length
和prototype
。prototype
對象用於存儲一些屬性,可供該函數建立的全部對象訪問,實際上就是容許定義新類型。咱們能夠向函數提供更多屬性。this
引用表達式引用對象的其餘屬性,這種函數稱爲方法。方法時OOP的核心概念。編寫一個函數,返回兩個實參的最大值。編程
function large(x,y) { return x>y ? x : y; };
編寫一個函數,返回兩個實參的平均值。數組
function mean(m1,m2) { return (m1+m2)/mean.length };
編寫一個函數,返回一個數組中全部項目的平均值。dom
function arrMean(arr) { var sum = 0; for (var i=0;i<arr.length;i++) { sum += arr[i]; } return sum/arr.length; };
解釋運行如下腳本結果,回答中應當涉及"結合律"一詞函數
var cubeOf = function (x) { return x*x*x; }; alert("魔方中共有:"+cubeOf(3)-1+" 個立方體");
咱們分析一下alert
中的語句,從左至右,第一個是字符串,後接一個加號,則說明此加號是作字符串鏈接符使用。繼續往右,函數調用優先級是比加號高的,因此先執行函數調用,返回一個數字,再相加。此時應該是"....:27",注意接下來,一對字符串與一個類型爲數值的數字作減號運算獲得什麼?咱們知道,這實際上是隱式轉換數值的方法之一,因此JS會嘗試把以前因此的字符串轉換成數值類型來與1
進行計算,不信試一下alert("15"-1)
。可是失敗了,因此會轉換爲NaN
,注意,此時數值類型是number
,alert(typeof NaN)
,而後NaN與後面字符串繼續相加,又轉換成了字符串類型。最後獲得一個類型爲字符串的字符串。this
編寫一個函數,接受兩個數字,並返回介於這兩個值之間的一個隨機數prototype
function random(n1,n2) { var randomArr = []; if (n1>n2) { for (var i=n2+1;i<n1;i++) { randomArr.push(i); } } else { for (var j=n1+1;j<n2;j++) { randomArr.push(j); } } return randomArr[[Math.floor(Math.random()*randomArr.length)+1]] };
編寫一個函數接受三個值,並返回其中值。三個數值的中值就是大於或等於另兩值的一個,小於或等於剩下的那個值。(尼瑪這形容)設計
中值也稱中位數,即數據按升序或者降序排列,假若有n
個數據,當n
爲偶數時,中位數爲第n/2
位數和第(n+2)/2
位數的平均數;若是n
爲奇數,那麼中位數爲第(n+1)/2
位數的值。code
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]; // 得到奇數位中位數,但因爲數組計算方式因此-1 };
編寫一個函數,返回一個給定數組中0的個數。對象
function numberOfZeros(arr) { var counter = 0; for (var i=0;i<arr.length;i++) { if (arr[i]===0) { counter++; } } return counter; };
編寫一個函數,返回一個給定字符在字符串中的出現次數。排序
function strNum(str,x) { var arr = String(str).split(""); var num = 0; alert(arr) for (var i=0;i<arr.length;i++) { if (arr[i]===x) { num++; } } return num; };