• javascript函数4.0


    7、函数

    (1)、参数类型

    number、string、Boolean、Object、Array、Function

    实例1-1:传入参数判断

    function fn2(a, b) {
        var typ = typeof a;
    //对参数的类型进行判断
        if((typeof a) != "number" || (typeof b) != "number") {
            console.error("传入类型有误!");
            return; //返回
        }
    //对参数进行操作
        var res = a - b;
        alert(res);
    }
    //调用函数
    fn(2, 1);

    注意:函数的参数是由程序员根据实际情况定义。形参(相当于代码中的变量),实参(传入的值)。传值时,要注意参数的个数以及类型。

    匿名函数

    语法:

    var 变量名 = function() {};

    作用:

    匿名函数使用在以函数作为参数和函数作为返回值的地方。

    代码:

    var fn = function() {
        console.log("函数的另一种定义方式,使用匿名函数给变量赋值");
    };
    //函数的调用
    fn();

    函数重名

    javascript中,没有函数重载的概念。如果出现了相同的函数名,后面的函数会覆盖前面的"同名"函数。

    function fx(a, b) {
        alert(a + b + "第一个");
    }
    function fx(x, y, z) {
        alert(x + y + "第二个");
    }
    fx(123, 12);
    
    //得到的结果会是调用第二个函数  135

    递归函数

    自己调用自己,关键点找到递归函数的出口。缺点:效率非常慢。

    示例1-1:求数列1,1,2,3,5,8,13......;第30位上的值。

    数学思路:n = F(n-1) + F(n-2),n>2;

    F1 = F2 = 1;

    function fblq(n) {
    //前1  2 位都为 1
        if(n==1 || n==2) {
            return 1;
        }
        else {
            return fblq(n-1) + fblq(n-2);
    }
    //调用裴波拉契函数
    var res = fblq(30);
    alert(res);

     (2)、参数传入

     a、对象和数组作为参数

    function fn3(obj, arr) {
    //输出对象的属性值
        console.log(obj.name);
    //遍历数组的值
        for(i in arr) {
            console.info(arr[i]);
        }
    }
    
    //定义对象
    var dx = {
        name: "小明";
        age: 123;
    };
    //定义数组
    var a = [1, 23, 12, 23];
    
    //调用函数
    fn3(dx, a);

    b、用函数来代替参数

    //声明函数功能
    function fp(x, y) {
        console.warn("演示函数作为参数");
    }
    //调用参数(函数)的函数
    function fn4(ff) {
        console.log("准备调用传入的函数");
        ff();
    }
    //将函数名做参数值传入
    fn4(fp);

    注意:“回调函数”,以函数做参数。

    如果参数是函数,只需要函数名。

    c、关于“形参”的数量和“实参”数量的判断

    function fn5(a, b, c, d) {
    //实际传入形参的数量
        var n = arguments.length;  
    //函数定义的“形参”的数量
        var m = fn5.length;
        if(n!=m) {
            console.error("参数个数不一致");
            return;
        }
        console.log(n);
        console.info(m);
    }
    fn5(1, 2);

    (3)、函数的返回值

    返回值的类型:number、string、Boolean、Array、object、Function

    作用:将函数的内部的数据,带到函数外部,return x;结束当前的函数,return;

    注意:写在return后面的代码将不会执行。

    a、函数的返回值

    function add(a, b) {
        var x = a + b;
        return x;
    }
    var res = add(3, 2);
    alert(res);

    b、对象作为返回值

    function test() {
        var obj={
            ss: "123",
            data: "呵呵",
        };
    //返回对象
            return obj;
    }
    
    var temp = test();
    //对象调用属性
    alert(temp.data);

    c、函数作为返回值

    //演示函数作为返回值的函数
    function fnReturn(a, b) {
        console.log("演示函数作为返回值的函数" + a + b);
    }
    //函数作为返回值,只写函数名
    function fn1() {
        console.info("即将演示函数作为返回值");
        return fnReturn;
    }
    
    var res = fn1();
    res(12, 211);

    匿名函数作返回值:

    //演示函数作为返回值的函数
    function fnReturn(a, b) {
        console.log("演示函数作为返回值的函数" + a + b);
    }
    //函数作为返回值,只写函数名
    function fn1() {
        console.info("即将演示函数作为返回值");
        return function() {
            console.warn("匿名函数");
        };
    }
    
    var res = fn1();
    res(12, 211);
  • 相关阅读:
    如何在fragment里面嵌套viewpager?
    textview限制字数,结尾显示。。。。。
    限制imageview大小
    iOS开发核心动画之画图板
    iOS开发核心动画之九宫格解锁
    iOS开发核心动画之Quartz2D绘图
    iOS开发核心动画之触摸手指识别
    iOS开发网络多线程之断点下载
    iOS开发网络多线程之网络请求文件解析
    iOS开发网络多线程之Runloop无限循环
  • 原文地址:https://www.cnblogs.com/HelloM/p/13489717.html
Copyright © 2020-2023  润新知