< 笔记 > JavaScript

来源:互联网 发布:软件行业职位分类 编辑:程序博客网 时间:2024/06/06 05:18

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赋值给sumvar 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/>");}