Javascript中变量声明的提升

对于所有的变量,无论在函数体的何处进行声明,都会在后台被提升到函数的顶部。

1.对于非函数变量

var str = 'hello world'; (function() { console.log(str); //undefined var str = "hello javascript"; })();

PS: 只提升变量的声明,并不会把赋值也提升上来,
所以在声明变量时最好在相应作用域的顶部声明并赋值

2.函数提升

foo(); //hello world console.log(bar); //undifined bar(); //error:bar is not a function function foo() { //函数声明和定义都会被提升 console.log("hello world"); } var bar = function() { //函数表达式只有声明会被提升,但是定义不被提升 console.log("hello javascript"); };

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,248评论 19 139
  • let 和 const 命令 let 命令 块级作用域 const 命令 顶层对象的属性 gl...
    安小明阅读 1,003评论 0 0
  • let 命令 块级作用域 const 命令 顶层对象的属性 global 对象 let 命令 基本用法 ES6 新...
    嘉奇呦_nice阅读 1,655评论 0 2
  • 前端07班 王语句JavaScript程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是...
    ea203453e188阅读 934评论 0 4
  • 夜半临窗听春雨, 想学陆郎卖杏花。 园中三两桃李树, 可怜乱红落谁家。 tulipjia作于第一场春雨时,原诗最后...
    tulipjia阅读 1,001评论 5 10