iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS变量作用域是什么
  • 790
分享到

JS变量作用域是什么

2024-04-02 19:04:59 790人浏览 独家记忆
摘要

这篇文章主要讲解了“js变量作用域是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS变量作用域是什么”吧!变量的作用域,指的是变量在脚本代码中的可读、

这篇文章主要讲解了“js变量作用域是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS变量作用域是什么”吧!

变量的作用域,指的是变量在脚本代码中的可读、可写的有效范围,也就是脚本代码中可以使用这个变量的区域。在es6之前,变量的作用域主要分为全局作用域、局部作用域(也称函数作用域)两种;在ES6及其之后,变量的作用域主要分为全局作用域、局部作用域、块级作用域这3种。相应作用域变量分别称为全局变量、局部变量、块级变量。全局变量声明在所有函数之外;局部变量是在函数体内声明的变量或者是函数的命名参数;块级变量是在块中声明的变量,只在块中有效。

变量的作用域跟声明方式有密切的关系。使用var声明的变量的作用域有全局作用域和局部作用域,没有块级作用域;使用let和const声明的变量有全局作用域、局部作用域和块级作用域。

注:严格意义的全局变量都属于Window对象的属性,但let和const声明的变量并不属于windows对象,所以它们并不是严格意义上的全局变量,在此仅仅从它们的作用域这个角度来说它们是全局变量的。

由于var支持变量提升,所以var变量的全局作用域是对整个页面的脚本代码有效;而let和const不支持变量提升,所以let和const变量的全局作用域指的是从声明语句开始到整个页面的脚本代码结束之间的整个区域,而声明语句之前的区域是没有效的。同样,因为var支持变量提升,而let和const不支持变量提升,所以使用var声明的局部变量是在整个函数有效,而使用let和const声明的局部变量从声明语句开始到函数结束之间的区域有效。需要注意的是,如果局部变量和全局变量同名,则在函数作用域中,局部变量会覆盖全局变量,即在函数体中起作用的是局部变量;在函数体外,全局变量起作用,局部变量无效,此时引用局部变量将出现语法错误。在块开始到块级变量声明语句之间区域为暂时性死区,在这个区域,块级变量没有效。

另外,在非严格运行模式中,变量可以不需要声明,这些没有声明的变量,不管在哪里使用都属于全局变量。通常不建议变量不声明而直接使用,因为这样有可能会产生一些不易发现的错误。

<!DOCTYPE html> <html> <head>  <title></title> </head> <body> <script>    var v1 = "javascript"; // 全局变量    let v2 = "JScript"; // 全局变量    let v3 = "Script"; // 全局变量        scopeTest(); // 调用函数    function scopeTest(){     var lv = "aaa";//局部变量         var v1 = "bbb";//局部变量         let v2 = "ccc";//局部变量         if(true){             let lv = "123";             console.log("块级输出的lv= " + lv); // 123         }                  console.log("函数体内输出的lv = " +lv); //aaa         console.log("函数体内输出的v1 = " +v1); //bbb         console.log("函数体内输出的v2 = " +v2); //ccc         console.log("函数体内输出的v3 = " +v3); //Script         console.log("函数体内输出的v4 = " +v4); // undefined, v4为全局变量,赋值在后面,var存在变量提升,因而值为undefined    }    var v4 = "VB"; //全局变量    console.log("函数体外输出的lv = " +lv); // 报ReferenceError错误    console.log("函数体内输出的v1 = " +v1); //JavaScript    console.log("函数体内输出的v2 = " +v2); //JScript    console.log("函数体内输出的v3 = " +v3); //Script    console.log("函数体内输出的v4 = " +v4); // VB </script> </body> </html>

上述脚本代码分别声明了4个全局变量、3个局部变量和1个块级变量。在scopeTest函数体外,变量v1、v2、v3和v4为全局变量;在scopeTest函数体内,lv、v2是全局变量;在if判断块中,lv是块级变量。我们看到,局部变量v1和v2与全局变量v1和v2同名,在scopeTest函数体内,局部变量v1和v2有效,因而在函数体这2个变量的输出结果分别为bbb和ccc;在函数体外全局变量v1和v2有效,因而在函数体外,这2个变量的输出结果分别为JavaScript和JScript。另外,块级变量lv和局部变量lv同名,在if判断块中,块级变量lv有效,因而在块中输出的结果为123,而在块外,局部变量lv有效,lv变量的输出结果为aaa。另外,全局变量v3和v4在函数体中没有被覆盖,因而输出的是全局变量的值,所以v3在函数体外和体内输出结果都是Script,而v4变量的赋值在函数调用的后面,因而在函数体中的v4输出结果为undefined,而在函数体外的输出是在声明之后,所以结果为VB。lv是局部变量,因而在函数体外访问会报ReferenceError错误。

总结:块级变量在块内覆盖局部变量,局部变量在函数体内覆盖全局变量,没有被覆盖的全局变量在函数体内、外都有效。

感谢各位的阅读,以上就是“JS变量作用域是什么”的内容了,经过本文的学习后,相信大家对JS变量作用域是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: JS变量作用域是什么

本文链接: https://www.lsjlt.com/news/84304.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS变量作用域是什么
    这篇文章主要讲解了“JS变量作用域是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS变量作用域是什么”吧!变量的作用域,指的是变量在脚本代码中的可读、...
    99+
    2022-10-19
  • python中什么是变量作用域
    这篇文章给大家介绍python中什么是变量作用域,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动...
    99+
    2023-06-14
  • VB.NET中变量作用域的作用是什么
    VB.NET中变量作用域的作用是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在一个过程或函数外声明的变量是全局变量,对本程序内部所有的过程和函数都起作用;而在一个过程或函...
    99+
    2023-06-17
  • js变量中作用域的使用示例
    这篇文章主要介绍js变量中作用域的使用示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!JavaScript是什么JS是JavaScript的简称,它是一种直译式的脚本语言,其解释器被称为JavaScript引擎,是...
    99+
    2023-06-14
  • Java变量声明和作用域是什么
    这篇文章主要为大家展示了Java变量声明和作用域是什么,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“Java变量声明和作用域是什么”这篇文章吧。1 前言变量是计算机语言中的一个概念,可以表示某个具...
    99+
    2023-06-26
  • go语言变量的作用域是什么
    这篇“go语言变量的作用域是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言变量的作用域是什么”文章吧。go语言变...
    99+
    2023-07-05
  • Python中变量作用域是什么意思
    这篇文章主要讲解了“Python中变量作用域是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中变量作用域是什么意思”吧!我们经常听说Python函数访问局部变量、全局变量...
    99+
    2023-06-15
  • Golang函数的变量作用域是什么
    Golang函数的变量作用域是指函数内部变量的可见性和生命周期。根据变量在函数中的位置和作用域,可以将变量分为三种类型:局部变量、参数变量和返回值变量。详细介绍:1、局部变量,是在函数内部定义的变量,只能在该函数内部使用,它们的作用域仅限于...
    99+
    2023-12-22
    Golang 函数 变量作用域
  • JavaScript局部变量与全局变量的作用域是什么
    本文小编为大家详细介绍“JavaScript局部变量与全局变量的作用域是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript局部变量与全局变量的作用域是什么”文章能帮助大家解决疑惑,下面...
    99+
    2022-10-19
  • Go语言中变量的作用域是什么
    这篇文章给大家介绍Go语言中变量的作用域是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。Go 语言中变量可以在三个地方声明:函数内定义的变...
    99+
    2023-06-08
  • JS变量及其作用域的示例分析
    小编给大家分享一下JS变量及其作用域的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、 变量及其作用域:变量分为“全局...
    99+
    2022-10-19
  • JS作用域和作用域链的区别是什么
    本篇内容介绍了“JS作用域和作用域链的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!作用域(Sc...
    99+
    2022-10-19
  • C++变量的作用域与生命周期是什么
    今天小编给大家分享一下C++变量的作用域与生命周期是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、变量的作用域变量的...
    99+
    2023-07-05
  • 怎么掌握js作用域链、内存回收、变量、闭包
    本篇内容介绍了“怎么掌握js作用域链、内存回收、变量、闭包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一...
    99+
    2022-10-19
  • js中的全局变量是什么
    本篇内容介绍了“js中的全局变量是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明全局作用域声明的变量称为全局变量(函数外部定义的变量...
    99+
    2023-06-20
  • js局部变量指的是什么
    这篇文章将为大家详细讲解有关js局部变量指的是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。说明局部作用域声明的变量称为局部变量(函数内部定义的变量)局部变量只能能使用局部变量。var在函数内部声明的...
    99+
    2023-06-20
  • python 变量和作用域
    变量作用域python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。python的作用域一共有4种,分别是:L (Local) 局部作用域E ...
    99+
    2023-01-30
    变量 作用 python
  • python中全局变量的作用域有什么用
    全局变量在Python中的作用域是整个程序的范围,可以在程序的任何地方使用和修改。这样的特性有以下几个用途:1. 共享数据:全局变量...
    99+
    2023-08-12
    python
  • jsp怎么访问作用域变量
    在JSP中,可以通过以下方式访问作用域变量:1. 访问请求作用域(request scope)变量:使用EL表达式`${}`来访问请...
    99+
    2023-09-22
    jsp
  • Python中变量的作用域
    一、变量作用域的含义 变量的作用域说白了就是变量的值从哪里获取,或者说变量取值的地方 我们在写代码过程中会用到很多变量,这些变量会出现在各种代码块中,有的出现在函数块里,有的在函数块外,例如: def n2(): a = 1 ...
    99+
    2023-01-30
    变量 作用 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作