zoukankan      html  css  js  c++  java
  • javascript函数篇三、函数声明提升

    变量提升想必大家都比较熟悉了,那么什么是函数声明提升呢?
    首先我们来了解下常用的两种函数定义方式:
    1. 函数声明
    2. 函数表达式

    下面来看下两种方式定义函数。
    函数声明语法定义函数

    function fn (n) {
        return n * 2
    } 

    函数表达式定义函数

    var fn = function (n) {
        return n * 2
    }

    *那么两种方式定义函数有什么区别呢?*
    **对于函数声明与函数表达式两种定义函数的方式,解析器会率先读取函数声明,并使其在执行任何代码之前可用,*这个过程叫函数声明提升*,而函数表达式则是在真正执行到他所在的代码行,才会被解释执行。**
    看下例子就明白了:

    fn(2)
    function fn (n) {
        return n * 2
    }

    上面的代码完全可以正常运行,因为在代码开始执行之前,解析器已经进行了函数声明提升,将函数声明添加到执行环境中。
    相反下面的代码则会报错:

    fn(2)
    var fn = function (n) {
        return n * 2
    }

    因为,函数声明位于一个赋值语句中,实际上,这里进行的是**变量提升**,也就是变量fn被提升到顶部,但并未被初始化为函数对象,在执行fn(2)的时候,fn变量为undefined,代码执行到这里就会报错,不会继续往下执行了。


    总结:
    函数声明提升指,当用函数声明语法定义函数时,解析器会在代码执行之前读取并将函数声明添加到执行环境,使其在执行任何代码之前可用。

  • 相关阅读:
    时间戳转换
    DIV背景半透明文字不半透明的样式
    转 JavaScript中判断对象类型的种种方法
    AllJoyn 了解
    Oracle 跨库 查询 复制表数据
    SQL Server 跨数据库查询
    Jersey RESTful Web服务
    【项目管理】项目启动阶段 -- 制定项目章程
    多项目同时进行如何做好进度管理?
    svn版本管理
  • 原文地址:https://www.cnblogs.com/youyang-2018/p/11706269.html
Copyright © 2011-2022 走看看