`
beijibingshan
  • 浏览: 10298 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

在学习javascript遇到的问题小结一--关于变量作用域的一个小角

 
阅读更多

先上两段代码。这两段代码均运行于html5的环境中。

代码一

 

<script>
    var yourname="ITeYe";
    myname="zhujiaojiao";
    changeName();
    function changeName(){
        alert(yourname);     //A
        alert(myname);       //B
    }
</script>

 代码二:

 

 

<script>
    var yourname="ITeYe";
    myname="zhujiaojiao";
    changeName();
    function changeName(){
        alert(yourname);     //C
        alert(myname);       //D
        var yourname="beijibingshan";
        myname="Fanny"; 
    }
    alert(yourname);         //E
    alert(myname);           //F
</script>

其中A,B,C,D,E,F分别输出的结果是“ITeYe”,“zhujiaojiao”,“undefined”,“zhujiaojiao”,“ITeYe”,“Fanny”。

试问问题一:为什么A处和C处输出的结果不一样?

试问问题二:为什么E处输出结果还是最初的值,而F处输出的却不是?

可以总结出这样的观点:

原来,“var”定义的是作用域上的一个变量,而没有'var'的标识符却可能是全局跟对象的一个属性,当代码运行在全局作用域的时候,作用域就是跟对象window,所有,有没有“var”都无所谓。当然,不同的javascript执行引擎可能有不同的实现方式,但都可以大致这么来理解。

 

分享到:
评论

相关推荐

    javascript执行环境及作用域详解_.docx

    在JavaScript中,执行环境的概念至关重要,因为它不仅涉及到变量的作用域,还关系到内存管理以及代码执行的流程。 每个执行环境都与一个变量对象相联系,该对象存储了环境中定义的所有变量和函数。虽然开发者无法...

    javascript课程内容总结

    JavaScript 课程内容总结 JavaScript 是一种广泛应用于网页开发的编程语言,...JavaScript 中的作用域包括全局变量和局部变量。全局变量定义在函数外部,作用于整个脚本。局部变量定义在函数内部,只能在函数中使用。

    Javascript 面向对象编程小结

    这篇博客“JavaScript 面向对象编程小结”可能涵盖了JavaScript中实现OOP的一些核心概念和技巧。 首先,面向对象编程的基础是类与对象。在JavaScript中,虽然没有像Java或C++那样的传统类机制,但是可以通过构造...

    Javascript执行效率小结.pdf

    在JavaScript中,每次在局部作用域内查找变量时,都需要沿着作用域链向上查找,直到找到变量所在的定义位置。如果频繁使用全局变量,这会导致大量的查找操作,降低执行效率。为优化这一点,可以将全局变量导入到局部...

    javascript面试应急知识点小结

    2. 作用域:JavaScript中的变量作用域有全局作用域和局部作用域,以及ES6引入的块级作用域。理解作用域规则能避免很多潜在问题。 3. 函数:函数是可重用的代码块,可以有参数和返回值。了解函数表达式、函数声明、...

    JavaScript性能陷阱小结(附实例说明)

    局部变量只在当前作用域内有效,销毁后不会占用内存,而全局变量在整个脚本生命周期中都存在。 5. **避免在性能关键的函数中使用`for-in`循环**: `for-in`循环用来遍历对象的所有可枚举属性,但不如传统的`for`...

    javascript_:demo--对作用域的理解和小结,以及对ADS.js的调用

    如果在函数内部声明一个同名的全局变量,那么在该函数内部,这个变量会覆盖全局的同名变量。 另外,JavaScript还引入了块级作用域的概念,这是通过let和const关键字实现的。在ES6之前,只有函数能创建新的作用域,...

    常用JavaScript函数 16 - 30(自我总结)

    - 闭包:能够访问自身作用域、外部作用域以及全局作用域的函数。 - `arguments`对象:在函数内部,可以访问所有传入参数的集合。 7. **对象** - 基于原型的对象创建:通过`new`关键字和构造函数创建。 - 对象...

    so和such用法小结.doc

    作用域是指在JavaScript中变量、函数和对象的可见性范围。主要有全局作用域和局部作用域。全局作用域的变量在整个脚本中都可访问,而局部作用域的变量仅在其定义的函数内部可见。 2. 闭包的概念 闭包是一种特殊的...

    JavaScript权威指南-第六版

     3.10 变量作用域56  第4章 表达式和运算符60  4.1 原始表达式60  4.2 对象和数组的初始化表达式61  4.3 函数定义表达式62  4.4 属性访问表达式63  4.5 调用表达式64  4.6 对象创建表达式64  4.7 运算符...

    弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】

    JavaScript是一种弱类型的...在实际编程中,应始终推荐使用`let`和`const`代替`var`来声明变量,以限制变量的作用域,并避免不必要的变量提升。此外,使用严格相等`===`进行比较操作,可以减少类型转换带来的不确定性。

    你可能从未使用过的11+个JavaScript特性(小结)

    首先,逗号运算符(`,`)在JavaScript中是一种特殊的运算符,它用于分隔多个表达式并返回最后一个表达式的结果。例如,`let oo = (1, 2, 3)`将返回3,因为3是最后的表达式。在`for`循环中,逗号运算符也常用于同时初始...

    JavaScript高级程序设计(第四版)中文版.pdf文件 下载就能看,还有很多书的电子版,上传的没上传的,可以找我要

    第4章 变量、作用域与内存 83 4.1 原始值与引用值 83 4.2 执行上下文与作用域 87 4.3 垃圾回收 94 4.4 小结 101 第5章 基本引用类型 103 5.1 Date 103 5.2 RegExp 107 5.3 原始值包装类型 113 5.4 单例...

    JavaScript的类型、值和变量小结

    JavaScript是一种基于原型的动态脚本语言,广泛应用于网页开发中。它具有强大的类型系统,包括原始类型和对象类型。...掌握这些概念对于任何一个希望在Web开发领域深入学习JavaScript的开发者而言都是必不可少的。

    javascript中的括号()用法小结.docx

    立即执行函数表达式是一种创建私有作用域并立即运行的函数。它通常用括号包裹函数定义,然后紧接着另一个括号传递参数。例如: ```javascript (function fun(a, b, c) { // ... })(1, 2, 3); ``` 这里的第一...

Global site tag (gtag.js) - Google Analytics