zoukankan      html  css  js  c++  java
  • 函数声明式与函数表达式的区别

    函数声明式与函数表达式的区别

    1.什么是函数声明式

    (ps:以下概念部分均来自百度,嘻嘻嘻)

    1. 函数声明式(Function Declaration)可以定义命名的函数变量,而无需给变量赋值,函数生命式是一种独立的结构,不能独立嵌套在非功能模块中。以function开头。

      顺便复习一下函数创建的几种方式

      • 第一种

        function 函数名 (参数…){
            //something...
        }
        
        //==============eg==================
        function test (argumnet){
            console.log(argument)
        }
        

    2.什么是函数表达式

    函数表达式(Function Expression)是将函数定义为表达是语句的一部分(通常是变量赋值)。通过函数表达式定义的函数是可以命名的,也可以是匿名的。不能以function开头(立即执行函数开头按()算)。

    //变量a引用了一个匿名函数表达式
    var a = function(){
        //something...
    }
    //=====================================================
    //变量a引用了一个函数声明式
    var a =  function test (){
        //something...
    }
    //===================================================
    //匿名函数表达式
    (function test1 () {
        //something...
    })();
    

    2.1扩展部分

    在上面的函数定义方法中,既有变量声明又有函数声明的方式

    var f =  function test(a){
        if (a <= 1){
            return a;
        }
        else {
            return test(1);
        }
    }
    
    console.log(f(2)); //1
    console.log(f(0));  //0
    test(0);  //test is not defined
    

    如上,如果这个函数声明式有函数名的话,那这个函数名就相当于一个局部变量,只能在方法内部才能使用

    3.函数声明式与函数表达式的区别

    函数声明式 函数表达式
    函数名 必须 非必须
    是否能在声明前调用 可以 不可以
    能否出现在循环、条件、try/catch/finally中 不能

    有什么错误欢迎补充,后面我也会查缺补漏,谢谢~~

  • 相关阅读:
    snaker数据库表说明
    Oracle 导入、导出DMP(备份)文件
    eclipse debug无法启动
    java----事务
    java----单例模式
    java----spring框架
    mybatis----批量增加与批量删除
    web应用程序状态管理
    JavaWeb----servlet
    HTML / CSS----元素分类
  • 原文地址:https://www.cnblogs.com/hongzhiguo/p/13820613.html
Copyright © 2011-2022 走看看