`

注意细节:Javascript中的变量作用域

 
阅读更多

先看一下这段Javascript脚本代码:

 1<script language="javascript">
 2    <!--
 3        var v = "aaa"
 4        function func()
 5        
 6            alert(v); 
 7            var v = "bbb"
 8        }

 9    //-->
10</script>

alert 出来的是什么?在我们看来应该是 "aaa",实际上alert 出来的是 "undefined"。为什么? 
因为 Javascript为了简化处理,变量实际上只有两种作用域,全局变量和函数的内部变量。你在函数内部任何一个地方定义的变量其作用域都是整个函数体。而在 alert 的时候函数的内部变量 v 已经定义了,并且覆盖掉了同名的全局变量的定义,只是还没有被初始化,所以 alert 出来的是 "undefined"。

分享到:
评论

相关推荐

    javascript变量作用域

    在 JavaScript 中,变量作用域是指变量可以被访问和修改的范围。 JavaScript 没有块级作用域,而是基于函数作用域和全局作用域的。 首先,看看 JavaScript 的作用域链是如何工作的。JavaScript 首先在当前作用域中...

    基于JavaScript的变量作用域的辨析.pdf

    本文探讨了JavaScript中的变量作用域问题,通过对两种变量的特性从不同角度进行分析和测试,讨论了如何控制变量作用域的有效方法。 变量作用域是JavaScript编程过程中经常遇到的问题之一,对于编程人员来说是一个...

    js变量作用域

    本篇文章旨在通过一系列示例和解释,帮助读者掌握JavaScript中的变量作用域机制。 #### 二、全局变量与作用域划分 ##### 1. 全局变量 在JavaScript中,全局变量实际上是`window`对象的一个属性。例如,如果在一个...

    理解JavaScript变量作用域.pdf

    理解JavaScript变量作用域.pdf 本人还有几十本经典javascript书籍以及无数javascript资料,要的加我qq 568094881,本人网址:www.maoshanhai.com

    深入理解变量作用域

    通过本文的介绍,我们可以看出变量作用域在JavaScript中的重要性。无论是全局作用域还是局部作用域,都直接影响着代码的行为。此外,理解作用域链和闭包的概念对于编写高质量、可维护的JavaScript代码至关重要。掌握...

    JavaScript程序设计-变量作用域.pdf

    JavaScript是一种广泛用于网页和网络应用的编程语言,其核心特性之一就是变量作用域。变量作用域决定了变量在何处可以被访问以及何时会被销毁。本文将深入探讨JavaScript中的全局变量、局部变量、变量提升、词法作用...

    JavaScript程序设计变量作用域共4页.pdf.zi

    本文将深入探讨JavaScript中的变量作用域,以及它如何影响代码的运行和组织。 首先,我们来理解什么是变量作用域。在JavaScript中,变量作用域决定了变量在何处可以被访问和识别。主要有三种类型的作用域:全局作用...

    JavaScript 基础函数_深入剖析变量和作用域

    JavaScript是一种广泛用于网页开发的脚本语言,它的函数和作用域是实现代码逻辑结构和模块...理解JavaScript中的变量作用域非常重要,它有助于避免变量命名冲突和意外的变量修改,从而编写出更加健壮和易于维护的代码。

    理解JavaScript变量作用域更轻松

    JavaScript变量作用域是编程基础中的重要概念,它决定了变量在哪些范围内可以被访问。了解变量作用域可以帮助开发者更好地管理代码中的数据,防止意外的变量冲突,从而提高代码的稳定性和可维护性。 JavaScript中...

    JavaScript:函数与作用域

    - **特性**:闭包使得函数可以访问并操作外部作用域中的变量,即使外部函数已经执行完毕。 - **示例**: ```javascript function outerFunction() { var outerVar = "外部变量"; function innerFunction() { ...

    作用域关闭:JavaScript的关闭作用域和作用域

    在JavaScript中,主要有两种作用域:全局作用域和局部作用域。全局作用域的变量在整个脚本或函数外部都是可访问的,而局部作用域的变量只在其定义的函数内部可见。当在函数内部创建变量时,它们通常具有局部作用域,...

    Javascript-Sandbox:JavaScript 中的作用域、闭包、面向对象和异步编程

    主要有两种作用域:全局作用域和局部作用域。全局变量在整个代码中都是可见的,而局部变量只在其声明的函数或块级作用域内有效。此外,ES6引入了`let`和`const`关键字,它们创建的是块级作用域的变量,避免了全局...

    Javascript中的作用域及块级作用域

     javascript的变量作用域,与平时使用的类C语言不同,例如C#中的代码: static void Main(string[] args) { if(true) { int number=10; } Console.WriteLine(number); }  这段代码进行编译,是无法通过的,...

    深入理解JavaScript作用域和作用域链

    JavaScript主要有两种作用域:全局作用域和局部作用域。 全局作用域是指在代码的任何位置都可以访问的变量或函数,这通常包括在最外层函数之外定义的变量、未声明直接赋值的变量(它们会自动声明为全局)以及window...

    JavaScript的变量作用域深入理解

    在学习JavaScript的变量作用域之前,我们应当明确几点: a、JavaScript的变量作用域是基于其特有的作用域链的。 b、JavaScript没有块级作用域。 c、函数中声明的变量在整个函数中都有定义。 1、JavaScript的作用域链...

    深入浅析JavaScript中的作用域和上下文

    3. **块级作用域**:在ES6之前,JavaScript没有块级作用域,但ES6引入了`let`关键字,使得变量能够在特定代码块(如`if`、`for`或`while`语句内)中定义并保持其作用域限制。 - 示例: ```javascript function ...

    一道关于JavaScript变量作用域的面试题_.docx

    JavaScript变量作用域是编程语言中一个非常核心的概念,它决定了变量在何处可被访问以及其生命周期。在这道面试题中,我们看到的是如何在不同作用域下声明和使用变量,特别是与for循环相结合的情况。 首先,我们要...

    深化浅析JavaScript中的作用域和上下文_.docx

    **变量作用域**: 在JavaScript中,变量可以存在于全局作用域或局部作用域。全局变量在整个程序运行期间都是可访问的,而局部变量只在定义它的函数内部有效。在ES6之前,JavaScript没有块级作用域,但ES6引入了`let`...

    深入解析JavaScript中的变量作用域

    在学习JavaScript的变量作用域之前,我们应当明确几点: •JavaScript的变量作用域是基于其特有的作用域链的。 •JavaScript没有块级作用域。 •函数中声明的变量在整个函数中都有定义。 1、JavaScript的作用域链...

    JavaScript程序设计课件:变量的作用范围.pptx

    JavaScript中的变量作用域是编程中一个至关重要的概念,它规定了变量在何处可被访问以及其生命周期。在JavaScript中,变量的作用范围分为两种主要类型:全局作用域和局部作用域。 1. 全局作用域(Global Scope): ...

Global site tag (gtag.js) - Google Analytics