javascript中提升操作对函数声明和函数表达式的区别

首先,函数声明和函数表达式的区别如下:

//函数声明
function foo(){}
//函数表达式
(function foo(){})()
//函数表达式
var foo = function(){};

在使用函数声明时,提升的过程如下:

foo();//function foo success
function foo(){console.log('function foo success');}
====>(等价于)
function foo(){console.log('function foo success');}
foo();//function foo success

在使用函数表达式时,提升的过程如下

foo();//TypeError
var foo = function(){};
====>
var foo;
foo();//TypeError
foo = function(){};
foo();//TypeError
bar();//ReferenceError
var foo = function bar(){};
====>
var foo;
foo();//TypeError
bar();//ReferenceError
foo = function(){
     var bar = self;//类似于这样的格式
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,664评论 0 5
  • 这篇文章主要介绍了JavaScript中的函数声明和函数表达式区别浅析,本文总结的浅显易懂,非常好的一篇技术文章,...
    宁骥阅读 573评论 0 1
  • 大家好,我是IT修真院的学员,一枚正直纯洁善良的web前端程序员 今天给大家分享一下函数表达式和函数声明有什么区别...
    情的信仰阅读 962评论 0 1
  • 大家好,我是IT修真院萌新分院的王寒,一枚正直,纯洁,善良的前端程序员。 今天给大家分享一下函数表达式和函数声明有...
    傲慢的小寒哥阅读 605评论 0 0
  • 凯莉珍德灵科沃特在她的TED《真是受够了人们对肥胖的恐惧》中谈到了肥胖恐惧症。肥胖恐惧症这种思维方式可能产生于个人...
    令宜阅读 455评论 0 1