JS中的提升

JS中包含两种提升,变量提升和函数提升。



变量提升

变量提升只能是var或者function声明的变量或者函数,let,const声明的不存在提升的说法。

顾名思义就是把下面的东西提升到上面。在函数域里定义一个和外部一样名称的变量时,只会取到该函数域,在赋值以前的输出为undefined。

在函数域内的if,for,switch语句中的变量无论条件是否满足都会得到提升,能够赋值与否要看是否满足条件。因此此处输出为2;如果!a变为a,则输出为undefined.


函数提升

定义函数有两种方式:函数声明和函数表达式。函数声明的函数才会提升函数(提升的其实是函数的引用,在声明之前可以调用),函数表达式提升的其实只是一个变量(调用会报错,因为只是一个变量)。

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

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,221评论 0 13
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,679评论 0 5
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,231评论 0 21
  • 我是双鱼座,特别的情绪化,还有一点不好,就是爱把自己的喜怒哀乐表现在脸上,这个人我喜欢就是喜欢,不喜欢就是...
    郝志阳阅读 580评论 0 0
  • 她应该算是我的女神了,因为毕竟苦苦思念了这么多年 虽然也只是每次在孤独行路之时 再一次见到她的照片的时候,好像有那...
    bufans阅读 391评论 0 0