zoukankan      html  css  js  c++  java
  • 函数

    1. 声明式函数

    function add() {
    }
    

    2. 函数表达式

    var add = function(){
    };(function后面不带有函数名)
    

    3. 函数的重复声明

    重复声明同一个函数,后面的函数会覆盖前面的声明。

    4. 参数,return

    参数分为:1.形式参数(形参,函数定义时的参数);
             2.实际参数(实参,调用函数时赋值进去的参数)
    

    一个函数只能返回一次retrun

    function add(x,y) {
      return x+y;
    }
    add(1,1) // 2
    

    5. 立即调用函数表达式

    防止声明里的变量对其他作用域造成影响。

    (function(){}()); 
    // 或者
    (function(){})();
    // 或者
    ~~function(){}();
    // 或者
    !!function(){}();
    

    6. 函数名的提升

    预解析:程序执行前的准备工作
    函数预解析:函数形参在函数预解析时初始化(赋值)
    预解析时会找到var声明的变量和声明式函数。给var声明的变量一个默认值 undefined。声明式函数执行。
    没有在函数内部声明的变量称为全局变量。
    函数内部用到的变量的取值范围是在函数声明时确定的。

    var a = 1;
    var fn = function() {
        console.log(a);
    };
    function fn1() {
        var a = 2;
        fn();
    }
    fn1(); //1
    

    自由变量:没有在当前作用域内声明的变量(相对)

    function fn(x,y) {
           var x = 1;
        function fn1(x,y) {
        }
    }
    x相对于fn1是自由变量,而相对于fn就不是自由变量
    

    7. 作用域

    作用域(scope)指的是变量存在的范围。
    JS内只有两种作用域:1.全局作用域;2.函数作用域(局部作用域)

    (1) 在函数外部声明的变量就是全局变量(global variable),它可以在函数内部读取。
    (2) 在函数内部定义的变量,外部无法读取,称为“局部变量”(local variable)。
    (3) 函数内部定义的变量,会在该作用域内覆盖同名全局变量。
    var a = 1;
        var fn = function() {
            console.log(a);
        };
        function fn1() {
            var a = 2;
            fn();
        }
        fn1(); //1
  • 相关阅读:
    json格式转换
    早该知道的7个JavaScript技巧
    SPFA加上SLF时判负环的条件
    HDU 4061 A Card Game
    线性筛法求素数
    STL之deque
    POJ 3219 二项式系数
    HDU 4296 Buildings
    HDU 4292 Food (成都赛区网络赛第五题,拆点网络流)
    拆点网络流(POJ3281)
  • 原文地址:https://www.cnblogs.com/justsilky/p/6853194.html
Copyright © 2011-2022 走看看