zoukankan      html  css  js  c++  java
  • javascript 函数

    一、函数的定义

    1、一般函数

    //一般函数
    //
    定义函数f1 function f1(x, y) { console.log("x的值:", x) console.log("y的值:", y) return x+ y; } //调用函数f1 ret = f1(10, 15) console.log("x+y=",ret)

    2、匿名函数

    /*
    匿名函数
    两个数比较
     */
    //声明匿名函数
    f2 = function (x, y) {
        if (x > y){
            return x;
        }else {
            return y;
        }
    }
    //调用匿名函数
    ret = f2(5, 10);
    console.log("最大值为:", ret);

    3、直接执行函数

    /*
    直接执行函数
    求和
     */
    ret = (function (x, y ) {
        // console.log(x+y)
        return x+y;
    })(1, 2);
    console.log(ret);

    二、函数中的arguments

    /*
    函数中的arguments
    arguments可以看成一个数组,所有的实参都在这里
     */
    //定义函数
    function f2(x, y) {
        console.log(arguments.length);
        for( var i=0 in arguments){
            console.log(arguments[i]);  //属性[变量名称]
        }
    }
    //调用函数
    f2(5,4, 3, 4);

    三、局部变量和全局变量

    局部变量:在函数内部定义的变量

    全局变量:函数外部声明的变量

    生命周期:局部变量,函数执行结束;全局变量,关闭网页

    四、作用域

    局部->全局

    /*
    作用域
     */
    var name = "tom";
    function f1() {
        function inner() {
            var name = "joker"
            console.log(name);
        }
        return inner;
    }
    
    ret = f1();
    ret();
    // 结果:joker

    五、词法分析(了解)

    1、过程

    语义分析->执行代码

    2、词法分析

    当函数调用的前一瞬间,会先形成一个激活对象:Avtive Object(AO),并会分析以下3个方面:
    1:函数参数,如果有,则将此参数赋值给AO,且值为undefined。如果没有,则不做任何操作。
    2:函数局部变量,如果AO上有同名的值,则不做任何操作。如果没有,则将此变量赋值给AO,并且值为undefined。
    3:函数声明,如果AO上有,则会将AO上的对象覆盖。如果没有,则不做任何操作。
    函数内部无论是使用参数还是使用局部变量都到AO上找。

  • 相关阅读:
    vue-cli 3.x 配置多环境
    阿里云安装nodejs
    使用vuex实现父组件调用子组件方法
    关于图片预览使用base64在chrome上的性能问题解决方法
    手机开发遇到的若干坑(持续更新)
    java--03--cglib代理
    java--02--动态代理
    java--01--静态代理
    SocketIO---Netty--HelloWorld
    SocketIO---bio2---带线程池处理任务
  • 原文地址:https://www.cnblogs.com/wt7018/p/11154472.html
Copyright © 2011-2022 走看看