zoukankan      html  css  js  c++  java
  • JavaScript小白教程4

    JavaScript 函数定义


    JavaScript 使用关键字 function 定义函数。

    函数可以通过声明定义,也可以是一个表达式。

    函数表达式

    <body>
    
    <p>函数存储在变量后,变量可作为函数使用:</p>
    <p id="demo"></p>
    <p id="demo1"></p>
    <script>
    var x = function (a, b) {return a * b};
    document.getElementById("demo").innerHTML = x;
    document.getElementById("demo1").innerHTML = x(4, 3);
    </script>
    
    </body>

    输出结果:

    函数存储在变量后,变量可作为函数使用:

    function (a, b) {return a * b}

    12

    Function() 构造函数

    <body>
    
    <p id="demo"></p>
    <script>
    var myFunction = function (a, b) {return a * b}
    document.getElementById("demo").innerHTML = myFunction(4, 3);
    </script>
        
    <p id="demo1"></p>
    <script>
    var myFunction = new Function("a", "b", "return a * b");
    document.getElementById("demo1").innerHTML = myFunction(4, 3);
    </script>
    
    </body>

    输出结果:

    12

    12

    自调用函数

    <body>
    
    <p>函数可以自动调用:</p>
    <p id="demo"></p>
    <script>
    (function () {
        document.getElementById("demo").innerHTML = "Hello! 我是自己调用的";
    })();
    </script>
    
    </body>

    输出结果:

    函数可以自动调用:

    Hello! 我是自己调用的

    函数是对象

    <body>
    
    <p> toString() 将函数作为一个字符串返回:</p>
    <p id="demo"></p>
    <script>
    function myFunction(a, b) {
        return a * b;
    }
    document.getElementById("demo").innerHTML = myFunction.toString();
    </script>
        
    </br>
        
    <p> arguments.length 属性返回函数接收到参数的个数:</p>
    <p id="demo1"></p>
    <script>
    function myFunction(a, b) {
        return arguments.length;
    }
    document.getElementById("demo1").innerHTML = myFunction(4, 3);
    </script>
    
    </body>

    输出结果:

    toString() 将函数作为一个字符串返回:

    function myFunction(a, b) { return a * b; }

    arguments.length 属性返回函数接收到参数的个数:

    2

    箭头函数

    ES6 新增了箭头函数。

    箭头函数表达式的语法比普通函数表达式更简洁。

    <body>
    
    <h2>JavaScript 箭头函数</h2>
    
    <p>IE11 及更早 IE 版本不支持箭头函数。</p>
    
    <p id="demo"></p>
    
    <script>
    const x = (x, y) => { return x * y };
    document.getElementById("demo").innerHTML = x(5, 5);
    </script>
    
    
    </body>

    输出结果:

    JavaScript 箭头函数

    IE11 及更早 IE 版本不支持箭头函数。

    25

    JavaScript函数传参

    <body>
    
    <p>查找最大的数。</p>
    <p id="demo"></p>
    <script>
    function findMax() {
        var i, max = arguments[0];
        
        if(arguments.length < 2) return max;
     
        for (i = 0; i < arguments.length; i++) {
            if (arguments[i] > max) {
                max = arguments[i];
            }
        }
        return max;
    }
    x = findMax(1, 123, 500, 115, 44, 88);
    document.getElementById("demo").innerHTML = x;
    </script>
    
    </body>

    输出结果:

    查找最大的数。

    500

    使用构造函数调用函数

    <body>
    
    <p>该实例中, myFunction 是函数构造函数:</p>
    <p id="demo"></p>
    <script>
    function myFunction(arg1, arg2) {
        this.firstName = arg1;
        this.lastName  = arg2;
    }
    var x = new myFunction("John","Doe")
    document.getElementById("demo").innerHTML = x.firstName; 
    </script>
    
    </body>

    输出结果:

    该实例中, myFunction 是函数构造函数:

    John

    传入数组

    <body>
    
    <p id="demo"></p>
    
    <script>
    var myObject, myArray;
    function myFunction(a, b) {
        return a * b;
    }
    myArray = [10, 2]
    myObject = myFunction.apply(myObject, myArray);      // 返回 20
    document.getElementById("demo").innerHTML = myObject; 
    </script>
    
    </body>

    输出结果:

    20

    JavaScript闭包

    <body>
    
    <p>局部变量计数。</p>
    <button type="button" onclick="myFunction()">计数!</button>
    <p id="demo">0</p>
    <script>
    var add = (function () {
        var counter = 0;
        return function () {return counter += 1;}
    })();
    function myFunction(){
        document.getElementById("demo").innerHTML = add();
    }
    </script>
    
    </body>
    <body>
    
    <p>局部变量计数。</p>
    <button type="button" onclick="myFunction()">计数!</button>
    <p id="demo">0</p>
    <script>
    function add() {
        var counter = 0;
        return counter += 1;
    }
    function myFunction(){
        document.getElementById("demo").innerHTML = add();
    }
    </script>
    
    </body>

    这两段代码执行的结果不一样,一个可以加一个只能加到1不变

  • 相关阅读:
    SQLServer多表联查,多表分页查询
    GOF23种设计模式概括
    常用的正则表达式
    面向对象七大原则
    Jquery简单学习
    MVC图片上传详解
    面向对象OOP概念描述
    C++ 基础命名空间 using namespace std;
    找不到WJSWDLL.dll
    AspectJ中的类型间声明(成员注入)
  • 原文地址:https://www.cnblogs.com/jiatianyi/p/10960476.html
Copyright © 2011-2022 走看看