不论我们前面讲到的for, if等语句还是function,后面有一对{}比如
for(var i = 0; i < items.length; i++){
//“{”和“}”之间有代码
}
if(some_express){
//“{”和“}”之间有代码
}
function(param1){
//“{”和“}”之间有代码
}
所有{}包起来的代码,都可以称之为 “代码块” , 英文名叫Block。
在函数中定义的变量在函数外不能获取
每个代码块都有一个自己的作用域,作用域决定了变量能否被访问(不论读取变量还是修改变量)。
在最上层没有任何{}包裹的作用域为顶层作用域,声明的变量是哪里都可以访问的。
代码块是有层级的,在一个代码块里写的新的代码块,后者是前者的子作用域
当局部变量与全局变量重名时,局部变量会覆盖全局变量
var num = 1; //声明一个全局变量
function func() {
var num = 2; //声明一个局部变量
return num;
}
console.log(func()); //输出:2
函数作用域变量在声明它们的函数体以及这个函数体嵌套的任意函数体都是有定义的
function func() {
console.log(num); //输出:undefined,而非报错,因为变量num在整个函数体内都是有定义的
var num = 1; //声明num 在整个函数体func内都有定义
console.log(num); //输出:1
}
func();
分享到:
相关推荐
JavaScript 函数作用域知识点详解: JavaScript 是一种基于函数作用域的语言。在讨论函数作用域之前,有必要了解什么是作用域。在编程中,作用域是变量和函数的可访问范围。作用域决定了代码块外部能否访问到代码块...
JavaScript 没有块级作用域,而是基于函数作用域和全局作用域的。 首先,看看 JavaScript 的作用域链是如何工作的。JavaScript 首先在当前作用域中查找变量,如果没有定义,则会继续查找上一层作用域,直到找到...
JavaScript中的闭包、匿名函数和作用域链是编程中至关重要的概念,它们是理解JavaScript运行机制的关键。在本文中,我们将深入探讨这三个概念,并通过实际示例来展示它们的运用。 首先,我们来讨论“闭包”。闭包是...
JavaScript是一种广泛用于网页开发的脚本语言,它的函数和作用域是实现代码逻辑结构和模块化的重要元素。在JavaScript中,函数是可执行的代码块,能够被多次调用,并且可以返回数据到调用它的地方。同时,变量作为...
### JavaScript:函数与作用域 #### 一、函数基础 **1.1 函数声明与表达式** 在JavaScript中,函数是一段可重用的代码块,用来执行特定任务。函数可以通过两种方式进行定义:函数声明和函数表达式。 - **函数...
总结来说,JavaScript中的函数作用域和变量提升是理解JavaScript执行机制和避免作用域相关错误的关键。通过以上示例,我们可以看到在函数作用域中变量如何表现,以及局部变量如何与全局变量进行互动。理解和掌握这些...
JavaScript:函数与作用域.docx
在JavaScript编程语言中,变量和作用域是理解基础的重要组成部分,尤其是在编写函数时。本文将深入剖析JavaScript中的基础函数、变量和作用域的概念,以及如何在实际编程中安全地使用它们。 首先,我们来看函数的...
在ES6之前,JavaScript没有块级作用域,但if语句和for语句中的var声明的变量仍然有函数作用域或全局作用域。 四、函数作用域 函数作用域通常与局部作用域相重叠,但指的是通过函数定义的方式(使用function关键字或...
值得注意的是,JavaScript没有块级作用域的概念,直到ES6引入let和const关键字之前,使用var声明的变量都是函数作用域或全局作用域。 在讨论作用域时,还必须提到变量提升(hoisting)的概念。变量提升指的是在...
JavaScript作用域是编程中至关重要的概念,它规定了变量和函数的可见性及生命周期。JavaScript主要有两种作用域:全局作用域和局部作用域。 全局作用域是指在代码的任何位置都可以访问的变量或函数,这通常包括在最...
函数作用域决定了变量的生命周期和可见性,对于理解和编写高效、无错的JavaScript代码至关重要。 首先,我们要理解作用域的基本类型:全局作用域和函数作用域。全局作用域指的是在函数外部定义的变量,这类变量在...
执行环境是一个概念,一种机制,用来完成 JavaScript 运行时在作用域、生存期等方面的处理,它定义了变量或函数是否有权访问其他数据,决定各自行为。 一、执行环境(Execution Context) 在 JavaScript 中,所有...
**认识JavaScript函数作用域** 函数作用域是编程中一个关键概念,它决定了变量在何处可以被访问。在JavaScript中,作用域主要分为三类:全局作用域、函数作用域和块级作用域(自ES6引入)。 1. **全局作用域**: ...
这就是闭包(closures)的基础,闭包允许函数访问并操作外部作用域的变量,即使函数已经执行完毕。 **立即执行函数表达式(IIFE)** 是一种常见的技巧,用于创建临时的私有作用域,防止变量污染全局环境: ```...
### JavaScript函数大全解析 在深入探讨JavaScript函数的广泛应用与特性之前,让我们首先明确一点:JavaScript函数不仅是编程语言中的核心组件,更是实现复杂逻辑、封装功能模块的关键所在。不同于许多传统面向对象...
变量作用域的控制方法有多种,包括使用var关键字、函数作用域、闭包等。使用var关键字可以将变量定义为局部变量,避免与全局变量混淆。函数作用域可以将变量定义在函数体内部,避免与全局变量混淆。闭包可以将变量...
2. **块级作用域与let/const**:在ES5中,只有函数作用域,而ES6引入了块级作用域,通过`let`和`const`关键字实现。`let`用于声明变量,可以在同一作用域内重新赋值;`const`则用于声明常量,一旦赋值后不可改变。 ...
此外,随着ES6的引入,块级作用域和函数作用域也变得更加复杂。 首先,全局作用域是最外层的作用域,任何在这个作用域中声明的变量在整个脚本中都是可访问的。如果在函数外部声明一个变量,那么这个变量就是全局...