zoukankan      html  css  js  c++  java
  • JavaScript(2):函数

     1 <!DOCTYPE html>
     2 <html>
     3     <body>
     4         <p>JavaScript 函数</p>
     5         <script>
     6             // 函数声明
     7             function myFunction(a, b) { return a * b;}
     8             console.log(myFunction(2, 6));
     9             // 函数表达式(匿名函数)
    10             var demo1 = function(a, b) {return a * b;};
    11             console.log(demo1(2, 5));
    12             // Function()构造函数 [F大写!]
    13             var demo2 = new Function("a", "b", "return a * b");
    14             console.log(demo2(2, 4));
    15             // 自调用函数(匿名自我调用的函数) [添加两对括号!]
    16             (function() {
    17                 console.log("Call myself.");
    18             })();
    19 
    20             // 函数是对象
    21             // 使用 typeof 操作符判断函数类型将返回 "function"
    22             console.log(typeof demo1 == 'function');
    23             // toString() 方法将函数作为一个字符串返回
    24             console.log(demo1.toString());
    25 
    26             // Arguments对象
    27             // [例1]获取最大值
    28             function myMax() {
    29                 var i, max = arguments[0];
    30                 if(arguments.length < 2) return max;
    31                 for(i = 1; i < arguments.length; i++){
    32                     if(arguments[i] > max) max = arguments[i];
    33                 }
    34                 return max;
    35             }
    36             console.log(myMax(1, 3, 9, 5, 7));
    37             // [例2]统计所有数值的和
    38             function mySum() {
    39                 var i, sum = 0;
    40                 for(i = 0; i < arguments.length; i++) sum += (arguments[i] = arguments[i] || 0);
    41                 return sum;
    42             }
    43             var undef;
    44             console.log(mySum(1, 3, 5, 7, 9, null, undef));
    45 
    46             // 函数作为方法调用
    47             var myObject = {
    48                 firstName: "Frank",
    49                 lastName: "Liu",
    50                 fullName: function() { return this.firstName + " " + this.lastName; }
    51             }
    52             console.log(myObject.fullName());
    53 
    54             // 构造函数调用函数
    55             function demo3(arg1, arg2) {
    56                 this.firstName = arg1;
    57                 this.lastName  = arg2;
    58             }
    59             var demo4 = new demo3("Frank", "Liu");
    60             console.log(demo4.firstName);
    61 
    62             // call()和apply()是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身
    63             // call则作为call的参数传入(从第二个参数开始)
    64             var demo5 = myMax.call(demo5, 3, 1, 5 ,2);
    65             console.log(demo5);
    66             //  apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入
    67             var demo6 = myMax.apply(demo6, [3, 1, 6 ,2]);
    68             console.log(demo6);
    69 
    70             // JavaScript闭包
    71             // 函数的特别之处在于可以创建一个独立的作用域,最内层的函数使用了counter变量,所以counter不会被销毁
    72             var add = (function() {
    73                 var counter = 0;
    74                 return function() { return counter += 1; };
    75             })();
    76             console.log("Loop1: " + add()); // 1
    77             console.log("Loop2: " + add()); // 2
    78             console.log("Loop3: " + add()); // 3
    79         </script>
    80     </body>
    81 </html>
  • 相关阅读:
    如何引用webservice
    oracle TNS 无法启动 解决方案
    android 照相
    Nutch 运行错误
    XML Bitmap
    Level List
    hadoop hdfs 上传下载文件
    Layer List
    android popup
    [置顶] Clean Talk
  • 原文地址:https://www.cnblogs.com/storml/p/7507554.html
Copyright © 2011-2022 走看看