< 笔记 > JavaScript - 06 JavaScript 函数

06 JavaScript 函数

By Kevin Song

06-01 一般函数
06-02 动态函数
06-03 匿名函数

06-01 一般函数

定义函数需要两个明确

  • 函数的结果
  • 参数列表

格式:

function 函数名 (参数列表) {
    函数体;
    return 返回值;
}
<script type="text/javascript">
    function demo() {
        alert("demo run");
        return;
    }
    demo();//调用函数

    function demo2(x,y) {
        return x+y;
    }
    var sum = demo2(1,2);
    alert("sum"+sum);
</script>

函数细节一

  • 只要使用函数名称就是在调用函数
  • 函数中有一个数组,在对传入的参数进行存储,这个数组就是argument
function show(x,y) {
    alert(x+":"+y);
}
show(4);//4:undefined

函数细节二

  • 不写括号直接写函数名,无法调用函数,输出的是函数的字符串表达形式
function getSum() {
    return 100;
}
var sum = getSum();
alert("sum="+sum);//函数运行,返回值100赋值给sum
var sum = getSum;
alert("sum="+sum);//getSum这个引用的地址值赋给sum,sum也变成了函数对象的引用,打印对象的字符串形式
/*
sum=function getSum() {
    return 100;
}
*/

06-02 动态函数

动态函数:使用的是JavaScript中内置的对象Function

格式

new Function("参数列表","代码1;代码2;return;");
var add = new Function("x,y","var sum; sum=x+y; return sum;");
var sum = add(4,8)
alert("sum”+sum);//12

06-03 匿名函数

函数的简写形式

var add3 = function(a,b) {
    return a+b;
}
alert(add3(7,8));

函数练习

  • 获取数组最值
function getMax(arr) {
    var max = 0;
    for(var x = 1; x < arr.length; x++) {
        if(arr[x]>arr[max]) {
            max = x;
        }
    }
    return arr[max]
}
  • 数组排序
function sortArray(arr) {
    for(var x = 1; x < arr.length-1; x++) {
        for(var y = x+1; y < arr.length; y++) {
            if(arr[x]<arr[y]) {
                swap(arr,x,y);
            }
        }
    }
}
function swap(arr,x,y) {
    var temp = arr[x];
    arr[x] = arr[y];
    arr[y] = temp;
}
  • 数组查找
//挨个查找
function searchElement(arr,key) {
    for(var x = 0; x < arr.length; x++) {
        if(arr[x]==key) {
            return x;
        }
    }
}
//二分查找
function binarySearch(arr,key) {
    arr.sort();
    for(var x = 0; x < arr.length; x++) {
        var max,min,mid;
        min = 0;
        max = arr.ength-1;
        while(min<=max) {
            mid = (max+min)>>1;
            if(key>arr[mid]) {
                min = mid + 1;
            } else if(key<arr[mid]) {
                max = mid - 1;
            } else {
                return mid;
            }
        }
        return -1;
    }
}
  • 数组逆排序
function reverseArray(arr){
    for(var start=0,end=arr.length-1; start<end; start++,end--){
        swap(arr,start,end);
    }
}
reverseArray(arr);
println("反转后:"+arr);

function println(val) {
    document.write(val+"<br/>");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值