JavaScript作用域和变量的使用规则简述

简介: JavaScript作用域和变量的使用规则简述

一、JavaScript中 作用域


在JavaScript中 作用域分为两种: 一种是全局作用域, 一种是局部作用域。


1、全局作用域:

全局作用域是最大的作用域,在全局作用域中定义的变量可以在任何地方去使用。浏览器页面打开的时候,会自动给我们生成一个全局作用域window。作用域一直会存在,直到页面关闭的时候会销毁,我们在浏览器控制台能够访问的变量都是全局作用域。


2、局部作用域:


局部作用域就是在全局作用域底下开辟出来的一个小作用域,在局部作用域中定义的变量只能在这个局部地区可以使用,不能越界,在JavaScript中只有函数能够生成一个局部作用域,别的都不行。每一个函数,都是一个局部作用域。


二、变量的使用规则


变量的使用规则也分为两种:访问规则赋值规则


1、变量访问规则


变量的访问规则,只能向上找,不能向下找;

先在自己的作用域内部查找,如果有,就直接拿来使用;

如果没有,就去上一级作用域寻找,如果再没有,再去上一级查找,以此类推;

如果一直到全局作用域都没有这个变量,那就会直接报错(该变量没定义)。


2、变量赋值规则


当给一个变量赋值的时候,就先要找到这个变量,再给他赋值,变量赋值规则是:

先在自己作用域内部查找,有就直接赋值;

没有就去上一级作用域内部查找;

还没有再去上一级;

如果一直到全局作用域都没有,那么就把这个变量定义为全局变量,再给他赋值。


相关文章
|
JavaScript 前端开发
js的作用域作用域链
【10月更文挑战第29天】理解JavaScript的作用域和作用域链对于正确理解变量的访问和生命周期、避免变量命名冲突以及编写高质量的JavaScript代码都具有重要意义。在实际开发中,需要合理地利用作用域和作用域链来组织代码结构,提高代码的可读性和可维护性。
|
JavaScript 前端开发
JavaScript如何判断变量undefined
JavaScript如何判断变量undefined
|
10月前
|
JavaScript 前端开发 开发者
JavaScript基础——JavaScript变量名称命名规范
JavaScript变量命名规范是编写高质量代码的重要部分。通过遵循基本规则、使用常见命名约定并应用最佳实践,可以提高代码的可读性和可维护性。希望本文能帮助开发者在日常编程中更好地理解和应用JavaScript变量命名规范,从而编写出更清晰、更可靠的代码。
668 11
|
JavaScript 前端开发 Java
JS中的隐式类型转换规则
JavaScript 是一门弱类型语言,变量类型在运行时会进行隐式转换。本文总结了常见的隐式转换规则,包括运算符转换、等号比较和布尔值转换等。例如,`1 + {a: 1}` 会先调用对象的 `toString()` 方法,最终结果为 `'1[object Object]'`。此外,还详细解析了 `undefined` 和 `null` 的运算行为,以及 `![] == []` 等特殊情况。通过这些例子,帮助开发者更好地理解 JavaScript 中的类型转换机制。
212 6
JS中的隐式类型转换规则
|
12月前
|
JavaScript 前端开发 容器
盘点JavaScript中所有声明变量的方式及特性
本文详细介绍了JavaScript中变量定义的多种方式,包括传统的`var`、`let`和`const`,以及通过`this`、`window`、`top`等对象定义变量的方法。每种方式都有其独特的语法和特性,并附有代码示例说明。推荐使用`let`和`const`以避免作用域和提升问题,谨慎使用`window`和`top`定义全局变量,不建议使用隐式全局变量。掌握这些定义方式有助于编写更健壮的JS代码。
319 11
|
JavaScript 前端开发
JS隐式类型转换规则
【10月更文挑战第9天】 不同的 JavaScript 引擎可能在隐式类型转换的具体实现上存在一些细微差别。理解这些隐式类型转换规则对于正确处理数据和避免错误非常重要。
210 57
|
前端开发 JavaScript
如何在 JavaScript 中访问和修改 CSS 变量?
【10月更文挑战第28天】通过以上方法,可以在JavaScript中灵活地访问和修改CSS变量,从而实现根据用户交互、页面状态等动态地改变页面样式,为网页添加更多的交互性和动态效果。在实际应用中,可以根据具体的需求和场景选择合适的方法来操作CSS变量。
534 12
|
前端开发 JavaScript 数据处理
CSS 变量的作用域和 JavaScript 变量的作用域有什么不同?
【10月更文挑战第28天】CSS变量和JavaScript变量虽然都有各自的作用域概念,但由于它们所属的语言和应用场景不同,其作用域的定义、范围、覆盖规则以及与其他语言特性的交互方式等方面都存在明显的差异。理解这些差异有助于更好地在Web开发中分别运用它们来实现预期的页面效果和功能逻辑。
220 11
|
JavaScript 前端开发
javascript的作用域
【10月更文挑战第19天javascript的作用域
|
JavaScript 前端开发
如何在 JavaScript 中实现块级作用域?
【10月更文挑战第29天】通过使用 `let`、`const` 关键字、立即执行函数表达式以及模块模式等方法,可以在JavaScript中有效地实现块级作用域,更好地控制变量的生命周期和访问权限,提高代码的可维护性和可读性。