专栏首页前端の进行时JavaScript-变量/函数声明提升

JavaScript-变量/函数声明提升

一、变量声明

1.1 var

最常见的变量声明方法,在关键词 var 后面紧跟一个变量名(也称之为变量的标识符)。

1.2 undefined

(1)如上定义了一个名为test的变量,但未给这个变量进行初始化(也就是没有赋值),此时其默认初始化值undefined

二、变量声明提升

2.1 hoisting

(1)由于变量声明(以及其他声明)总是在任意代码执行之前处理,所以在代码中的任意位置声明变量总是等效于在代码开头声明

(2)这意味着变量可以在声明之前使用,这个行为叫做“hoisting”。“hoisting”就像是把所有的变量声明移动到函数或者全局代码的开头位置

(3)因此,建议始终在作用域顶部声明变量(全局代码的顶部函数代码的顶部),这可以清楚知道哪些变量是函数作用域(本地),哪些变量在作用域链上解决。

(4)重要的是,提升将影响变量声明,而不会影响其值的初始化。当到达赋值语句时,该值将确实被分配

三、函数声明

3.1 概念

函数声明通过关键词 function 来声明,关键词后面紧跟的是函数的名称,名称后面有一个小括号(()),括号里面放置了函数的参数(para1,...,paramN)和一对大括号{...},函数的代码块就放在这个大括号内。

3.2 示例

(1)function isEven(num) {...}是一个函数声明,定义了一个isEven函数。用来判断一个数是不是偶数。

四、函数表达式

区分函数声明和函数表达式的规则:函数声明总是以function关键词开始,如果不是,那它就是一个函数表达式。

(1)函数表达式不是以function关键词开始(一般出现在代码的中间部分)

五、函数声明提升

六、函数声明优先级较高

(1)函数声明比变量声明的优先级高。

(2)如果两者同名,并且同时存在,后被提升的函数声明会覆盖先被提升的变量声明。

参考文章 详解Javascript 函数声明和函数表达式的区别

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JavaScript-立即调用函数表达式(IIFE)

    (2)【注意】JavaScript引擎规定,如果function关键字出现在行首,一律解释成函数声明语句

    WEBING
  • JavaScript-作用域、块级作用域、上下文、执行上下文、作用域链

    (2)实际上,JavaScript默认有一个全局对象window,全局作用域的变量实际上被绑定到window的一个属性。

    WEBING
  • JavaScript 函数的定义

    JavaScript函数是指一个特定代码块,可能包含多条语句,可以通过名字来供其他语句调用以执行函数包含的代码语句。

    WEBING
  • JavaScript

    注释问题:单行,多行,方法注释等..... 快捷键:ctrl+/ 和ctrl+shift+/

    用户4158112
  • Kotlin中的高阶函数深入讲解

    在Kotlin中,高阶函数是指将一个函数作为另一个函数的参数或者返回值。如果用f(x)、g(x)用来表示两个函数,那么高阶函数可以表示为f(g(x))。Kotl...

    砸漏
  • C++随记(八)---存储持续性、作用域和链接性

    版权声明:本篇文章是阅读《C++primer plus (第6版)中文版》第9章之后所作的笔记。部分文字和图表摘自于这本书。 C++随记(八)---存储持续性、...

    TeeyoHuang
  • Pytorch里的CrossEntropyLoss详解

    首先要知道上面提到的这些函数一部分是来自于torch.nn,而另一部分则来自于torch.nn.functional(常缩写为F)。二者函数的区别可参见 知乎:...

    marsggbo
  • PE文件和COFF文件格式分析——导出表

            在之前的《PE可选文件头》相关博文中我们介绍了可选文件头中很多重要的属性,而其中一个非常重要的属性是(转载请指明来源于breaksoftware...

    方亮
  • 函数

    1、函数的定义 C源程序是由函数组成的。最简单的程序有一个主函数 main(),但实用程序往往由多个函数组成,由 主函数调用其他函数,其他函数也可以互相调用。函...

    编程范 源代码公司
  • 【javascript】详解javascript闭包 — 大家准备好瓜子,我要开始讲故事啦~~

    前言: 在这篇文章里,我将对那些在各种有关闭包的资料中频繁出现,但却又千篇一律,且暧昧模糊得让人难以理解的表述,做一次自己的解读。或者说是对“红宝书”的《函数表...

    外婆的彭湖湾

扫码关注云+社区

领取腾讯云代金券