Javascript作用域 (局部作用域和全局作用域) 详细介绍

这篇具有很好参考价值的文章主要介绍了Javascript作用域 (局部作用域和全局作用域) 详细介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Javascript作用域 (局部作用域和全局作用域) 详细介绍

作用域是当前的执行上下文,值和表达式在其中“可见”或可被访问。

常见的作用域为:
全局作用域:脚本模式运行所有代码的默认作用域
函数作用域:由函数创建的作用域
局部作用域:用对象{}包着(一个代码块)创建出来的作用域

了解作用域之前先看一下全局变量和局部变量
  • 全局变量
    1、在全局作用域下声明的变量叫做 全局变量(在函数外部定义的变量)

    2、全局变量在全局(代码的任何位置)下都可以使用;全局作用域中无法访问到局部作用域中的变量。

以下我们用var创建的就是全局变量:

<script>
var value = 66;
    function method(){
        console.log(value);
    }
method();
console.log(value);
</script>

全局变量会提升但并不会赋值:所以 在创建之前log是undefined 的
亿点小知识:变量提升和上文提到触发时间有关。我们知道,var 和 function 声明的变量可以在声明前访问,这就是因为变量提升的缘故。

<script>
    console.log(value); // undefined 
    var value = 66;
	console.log(value); // 66
</script>
  • 局部变量
    1、在局部作用域下声明的变量叫做局部变量(在函数内部定义的变量)

    2、局部变量只能在函数内部使用,在局部作用域中可以访问到全局变量。

在函数的内部创建变量也是局部变量:

<script>
    function method(){
    	var value = 66;
        console.log(value); // 66
    }
method();
console.log(value); //value is not defined
</script>
全局作用域和局部作用域的区别
  • 全局作用域
    全局作用域中的变量称为全局变量,可以在任何作用域内访问。有两种全局变量:

1.全局声明变量是普通变量,在最顶级由 const、let 和 class 声明的变量。
2.全局对象是存储在全局对象中的属性
亿点小知识:所有创建的变量都会作为 window 对象的属性保存

<script>
var value = 66; // 在整个全局都可以获取到 value
    function method(){
        console.log(value); // 全局方法内部也可以获取到 value 
    }
method();
</script>
  • 局部作用域
    作用域对变量来说,可以简单理解为程序能够访问到变量的范围,超过作用域的就无法访问。
{ 
    // 外面这个 a 作用域,可以访问变量 a
    const a = 0; 
    console.log(a); // 0
    {
        // 里面这个 b 作用域,可以访问 a、b
        const b  = 1;
        console.log(a); // 0
        console.log(b); // 1
    }
}
// 最外面的作用域 不能访问 a,b
console.log(a); // 报错:Uncaught ReferenceError: a is not defined
  • 函数作用域
    在函数内部定义的变量,就是局部作用域。函数作用域内,对外是封闭的,从外层的作用域无法直接访问函数内部的作用域
function method(){
    let value = '内容';
}
console.log(value ) //报错:ReferenceError:value is not defined

Javascript作用域 (局部作用域和全局作用域) 详细介绍

以上就是局部作用域和全局作用域感谢大家的阅读
如碰到其他的问题 可以私下我 一起探讨学习
如果对你有所帮助还请 点赞 收藏谢谢~!
关注收藏博客 作者会持续更新…文章来源地址https://www.toymoban.com/news/detail-475859.html

到了这里,关于Javascript作用域 (局部作用域和全局作用域) 详细介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 44-js return返回值,全局作用域,局部作用域,隐式作用域,变量的生命周期,delete释放内存

    1. return 返回值:函数执行后剩下结果就是返回值。 2.作用域 查找变量的时候,会从当前作用域开始查找,如果当前作用域查找不到,逐层(外层)向上查找 2.1全局作用域 2.2局部作用域 

    2024年02月02日
    浏览(51)
  • Python的全局变量、局部变量、类变量、实例变量介绍

    Python 的变量分类 全局变量:模块内、所有函数外、所有class外的变量; 局部变量:函数内的变量,class的方法内且不使用self.修饰的变量; 类变量:class内且不在class的方法内; 实例变量:class的方法内且使用self.修饰的变量。 对于面向过程程序设计涉及: 全局变量:模块中

    2024年02月03日
    浏览(54)
  • Python入门【变量的作用域(全局变量和局部变量)、参数的传递、浅拷贝和深拷贝、参数的几种类型 】(十一)

     👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白 📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 🔥如果感觉博主的文章还不错

    2024年02月15日
    浏览(50)
  • 【C语言趣味教程】(4) 变量:代码注释 | 变量的声明 | 初始化与赋值 | 作用域与生命周期 | 局部变量与全局变量

      🔗 《C语言趣味教程》👈 猛戳订阅!!! 0x00 引入:注释的作用 \\\"程序员最讨厌两种人:一种是不写注释的人,一种是让我写注释的人。\\\" 相信大家对注释早已有所耳闻,对于注释,C 语言有两种注释风格,我们下面会逐个讲解。   但在这之前,我们先来了解了解注释的作

    2024年02月15日
    浏览(48)
  • Python全局变量和局部变量(超详细,纯干货,保姆级教学)

                            在函数外部定义的变量。所有函数内部都可以使用这个变量。                         在函数内部定义的变量。这个变量只能在定义这个变量的函数内部使用。 定义看起来一愣一愣的,没关系我也是。我将会用实例的方式为你

    2024年02月05日
    浏览(43)
  • Python进阶(一)名字空间 | 超详细名字空间解析 内置 全局 局部 调试查看

    在Python中,名字空间(Namespace)是一个用于存储变量名称和它们对应的对象值的容器。名字空间可以看作是一个映射,将变量名映射到相应的对象值。比如申明一个变量a=1,那么在名字空间字典中就会增加一个映射 ‘a’ : ‘1’ Python中有几种不同类型的名字空间,主要包括以

    2024年01月20日
    浏览(39)
  • JavaScript系列从入门到精通系列第十七篇:JavaScript中的全局作用域

    文章目录 前言 1:什么叫作用域 一:全局作用域 1:全局变量的声明 2:变量声明和使用的顺序 3:方法声明和使用的顺序         可以起作用的范围         我们的作用域只有全局作用域和函数作用域。          直接编写到Script里边的代码,就是全局作用域。全局作用域

    2024年02月06日
    浏览(43)
  • 作用域和作用域链的相关知识

    作用域(scope)规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问。 作用域分为: 局部作用域 全局作用域 局部作用域分为函数作用域和块作用域。 在函数内部声明的变量只能在函数内被访问,外部无法直接访问。 总结 : 函数内部声明的变量,在函数

    2024年02月08日
    浏览(45)
  • Bean 作用域和生命周期

    Spring 容器是用来存储和读取 Bean 的 , 因此 Bean 是 Spring 中最核心的操作资源. 编写代码过程中 , bean 对象如果有多个属性 , 创建 Getter , Setter, 构造方法 等方法 , 会产生大量冗长的代码. 那么为了使代码更加简洁 , 我们可以使用 Lombok 框架 , 只需要一行注释 , 就可以避免大量冗长

    2024年02月05日
    浏览(78)
  • Bean作用域和生命周期

    hi,今天为大家带啦Bean的作用域和生命周期的相关知识 Bean的作用域和我们之前学过的不一样,我们之前学的作用域是一个范围,而现在指的是 Bean在Spring框架中的某种行为模式,也就是一个动作. 这样干巴巴的说看我可能无法理解,我们来举个例子 创建一个公共类的一个公共对象

    2024年02月15日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包