星空网 > 软件开发 > Java

Javascript我学之二函数定义

  本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘

函数

几个要点:

                a).函数是javascript中的一等公民 (重要性)

                b).函数是一个对象
                c).函数定义了一个独立的变量作用域

 

定义方式

a)命名函数:

          除非在另一个函数内部定义,否则,命名函数是全局的。  

1         // 全局的命名函数2     function add(x, y) {3       return x + y;4     }5     console.info(add(100, 200));  //300

b)匿名函数:    

            匿名函数通常赋值给一个变量,再通过变量调用。

    var func = function (x, y) {      return x + y;    }    console.info(func(5, 2)); //7

            匿名函数适用于以下这种 “立即执行的匿名函数” 的情况:

    console.info(      function (x, y) {            return x + y;          }(100, 200)  //立即调用        );

C)定义方式影响代码执行效果

                命名函数可以先使用,再定义

    console.info(sum(10, 10));    function sum(num1, num2) {      return num1 + num2;    }

              匿名函数必须先定义,再使用

    //console.info(sumFunc(10, 10));  //Uncaught TypeError: Property 'sumFunc' of object [object Object] is not a function     var sumFunc = function (num1, num2) {      return num1 + num2;    };    console.info(sumFunc(10, 10));

函数返回值:

                 用return 生成返回值.如没有return ,则函数返回undefined

1     function func() {2     }3     console.info(func()); //undefined4     function func2() {5       return; //空的返回语句6     }7     console.info(func2()); //undefined

return里藏着的坑:

1       var func = function (x, y) {2         var sum = x + y;3         return {4           value : sum5         }6       }

                   这么写没有问题:   调用 func(5,5)    返回的是 Object {value: 10}

                   然而:  

1     var func = function (x, y) {2       var sum = x + y;3       return4       {5         value: sum6       };7     }8     console.info(func(5,5)); //undefined

 

                   return 后面跟着个回车换行的话,
                   调用 func(5,5)    显示的是 undefined
                   编辑器帮我们在return后加了个分号;   然而在这情况下并没有什么卵用。
 

函数即对象:

1     function add(x, y) {2       return x + y;3     }4     console.info(add(100, 200)); //3005     var other = add; //other和add引用同一函数对象6     console.info(other(300, 400)); //7007     console.info(typeof other);  //function8     console.info(add === other); //true

嵌套定义的函数:


                  在函数内部,可以定义另一个函数。
1     function outerFunc(a, b) {2       function innerFunc(x) {3         return x * x;4       }5       return Math.sqrt(innerFunc(a) + innerFunc(b));6     }7     console.info(outerFunc(3, 4)); //5

访问外部变量:


             内部函数可以访问外部的变量与参数。
 1     var globalStr = 'globalStr'; 2     function outerFunc2(argu) { 3       var localVar = 100; 4       function innerFunc2() { 5         localVar++; 6         console.info(argu + ":" + localVar + ":" + globalStr); 7       } 8       innerFunc2(); //hello:101:globalStr 9     }10     outerFunc2("hello");

返回函数的函数:

               因为函数是对象,所以可以作为返回值。

1       function outerFunc(x) {2         var y = 100;3         return function innerFunc() {4           console.info(x + y);5         }6       }7       outerFunc(10)(); //110

 

 

 





原标题:Javascript我学之二函数定义

关键词:JavaScript

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

FE International:https://www.ikjzd.com/w/4557
英特逊国际商务咨询有限公司:https://www.ikjzd.com/w/4558
优路通国际物流:https://www.ikjzd.com/w/4559
澳大利亚综合购物商城catch of the day:https://www.ikjzd.com/w/456
Xcoser:https://www.ikjzd.com/w/4560
culinaryteas:https://www.ikjzd.com/w/4561
商机!速卖通推出小B采销节,挖掘机、莫桑钻、电动车近期在海外走俏!:https://www.xlkjsw.com/news/93297.html
Zalando对欧盟在线平台监管费提出质疑:https://www.kjdsnews.com/a/1842241.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流