`
liugang594
  • 浏览: 990717 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript中的变量声明与作用域

 
阅读更多
  1. 使用关键字var 声明变量,例如:
    var a = "hello world";
  2. 也可以同时声明多个变量:
    var a, b, c;
  3. 声明,但未指定初始值的变量,初始值为undefined
  4. JavaScript的变量可以指向任何类型
  5. 由var声明的变量是永久的,不能用delete删除
  6. 可以使用var重复多次的声明同一变量,其中的初始化被认为是赋值操作
  7. 如果未以var关键字来声明变量,则会隐式的声明一个变量;一个隐式声明的变量是全局的
  8. JavaScript没有块作用域,因此函数中声明的所有变量都有同样的作用域,例如:
    function test(o){
           var i = 0;
           if( typeof o == "object"){
                 var j = 0;
                 for(var k = 0;k<10;k++){
                          document.write(k);
                 }
                 document.write(k);
            }
            document.write(j);
    }
  9. JavaScript有自动垃圾回收系统,不用考虑对象的释放。 
  10. JavaScript存在一个全局对象。当JavaScript解释器开始运行时,它就会创建一个全局对象。所有的全局变量都可以认为是这个对象的属性。
  11. 局部变量也是一个对象的属性,称之为调用对象。
  12. JavaScript每次执行一个函数时都会创建一个执行环境。JavaScript可以同时有多个执行环境,例如每个独立的浏览窗口或同一个窗口的多个帧(Frame)。这时全局对象就不完全是全局了的,它是属性每个独立的执行环境中的全局变量。但是他们之间可以通过,例如 parent.frames[1] 来引用另一帧,然后引用其中声明的变量,例如:
    parent.frames[1].x

作用域链

 

每个JavaScript执行环境都有一个与它关联的作用域链。这个作用域链是一个对象列表或对象链。当JavaScript代码需要查询某个变量(x)的值时,它就开始查找链上的每个对象,看看它是否有这个变量;否则就继续往上,直到查找到这个变量:

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    javascript变量作用域

    JavaScript 变量作用域详解 JavaScript 变量作用域是基于其特有的作用域链的。在 JavaScript 中,变量作用域是指变量可以被访问和修改的范围。 JavaScript 没有块级作用域,而是基于函数作用域和全局作用域的。 ...

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

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

    深入理解变量作用域

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

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

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

    js变量作用域

    ### JavaScript 变量作用域详解 #### 一、引言 在探讨JavaScript的面向对象特性之前,理解变量作用域的概念至关重要。本篇文章旨在通过一系列示例和解释,帮助读者掌握JavaScript中的变量作用域机制。 #### 二、...

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

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

    关于JavaScript中var声明变量作用域的推断

    一、迷思!由一段代码引发的疑惑 请看如下代码: 代码如下: for... 如果JavaScript中用var声明的变量可视为局部变量,那么能访问到这个变量的作用域就是这个变量的局部作用域。如上例,在console.log行处,依然有j、k

    理解JavaScript变量作用域.pdf

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

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

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

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

    JavaScript作用域是编程中至关重要的概念,它规定了变量和函数的可见性及生命周期。JavaScript主要有两种作用域:全局作用域和局部作用域。 全局作用域是指在代码的任何位置都可以访问的变量或函数,这通常包括在最...

    javascript执行环境,作用域理解

    在 JavaScript 中,执行环境和作用域是两个非常重要和基本的概念,理解了这两个概念对于 JavaScript 中很多脚本的运行结果就能明白其中的道理了。执行环境是一个概念,一种机制,用来完成 JavaScript 运行时在作用域...

    JavaScript中用let语句声明作用域的用法讲解_.docx

    块级作用域与匿名函数 在ES5中,匿名函数内的变量只能在顶层作用域或函数内声明。而在ES6中,`let`允许在块级作用域内声明变量,使得匿名函数的实现更为灵活。 ```javascript // ES5 'use strict'; if (true) { ...

    05-JavaScript作用域.pdf

    在函数作用域内声明的变量,不会与全局作用域或其他函数作用域中的同名变量发生冲突。 三、块作用域 块作用域是由一对花括号{}包裹的代码块,使用let和const声明的变量具有块作用域。这些变量仅在定义它们的代码块...

    JavaScript — 原型链与作用域链1

    这个作用域包含了在这个环境中声明的所有变量。 2. **变量活性**:在作用域内声明的变量会自动成为该作用域的活动对象的一部分。这意味着这些变量在作用域内部是可以被访问的。 3. **解析时机**:作用域内的变量和...

    【JavaScript源代码】JavaScript高级程序设计之变量与作用域.docx

    JavaScript是一种广泛应用于网页和网络应用的脚本语言,它的核心特性之一是变量和作用域的概念。在深入探讨这些概念之前,我们先理解一下原始值和引用值的区别。 1、原始值与引用值 JavaScript中有六种原始数据...

    简单谈谈javascript中的变量、作用域和内存问题

    如果在函数作用域内声明的变量与全局作用域中的变量同名,那么在函数作用域内,局部变量会遮蔽全局变量。 在讨论了变量之后,接下来让我们看看作用域。作用域可以定义为程序中定义变量或函数有权访问的其他数据的...

    JavaScript:函数与作用域

    ### JavaScript:函数与作用域 #### 一、函数基础 **1.1 函数声明与表达式** ...以上就是关于JavaScript中的函数与作用域的基本概念和用法。理解这些基本概念对于编写高效可靠的JavaScript程序至关重要。

    深化理解javascript作用域其次篇之词法作用域和动态作用域_.docx

    在词法作用域中,变量的查找是根据函数的声明位置来决定的。例如: function foo(a) { var b = a * 2; function bar(c) { console.log(a, b, c); } bar(b * 3); } foo(2); // 2 4 12 在上面的例子中,有三个...

    理解JavaScript作用域和作用域链

    在JavaScript中,变量的作用域有全局作用域和局部作用域两种。在代码中任何地方都能访问到的对象拥有全局作用域,一般来说以下几种情形拥有全局作用域:(1)最外层函数和在最外层函数外面定义的变量拥有全局作用域...

Global site tag (gtag.js) - Google Analytics