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; };