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

js中成员变量 和局部变量发生奇怪的问题

 
阅读更多


//当局部变量重新定义和成员变量重名,成员变量将是undefined
<script type="text/javascript">
          var a=1;   
          function aa(){
          alert('aaaaaaa'+a);   //这边答应undefined
           alert(!a);           //这边居然打印true
           if(!a){
             var a = 10;
           }
           alert(a);            //这边居然打印10.。。。
          }
          aa();
</script>



var a = 1;
function b()
{
a = 10;
alert('aaaa'+a);
return;
function a() {}
}
b();
alert(a);    //这边居然打印1.。。汗。。。。。
                         
0
0
分享到:
评论
1 楼 wjzsuperman 2013-02-05  
这个我是这么认为的:js函数中变量的作用域范围是整个函数,比如:
if(1){
var ff='123';
}
alert(ff);   //打印123
变量ff虽然是在if语句块中定义的,但是他在脱离了if语句之后也是有作用的,
js在编译的时候会将函数中所有的定义语句提到函数开头,所以你上面的例子结果都是正确的。
第一个相当于: var a=1;   
          function aa(){
           var a;        
           alert('aaaaaaa'+a);   //这边答应undefined
           alert(!a);          
           if(!a){
             var a = 10;
           }
           alert(a);            
          }
          aa();
第二个相当于:
var a = 1;
function b()
{
var a;//这是由于你下面定义了一个a函数
a = 10;
alert('aaaa'+a);
return;
function a() {}
}
b();
alert(a);


这个只是我的个人理解 ,有误请指正   

相关推荐

    Java 成员变量和局部变量

    理解成员变量和局部变量的概念对于编写Java程序至关重要。正确选择变量类型可以帮助优化内存使用,提高代码可读性和维护性。在实际编程中,合理利用这两类变量可以实现数据封装,遵循面向对象的原则,从而构建更健壮...

    75.java成员变量与局部变量.zip

    75.java成员变量与局部变量.zip75.java成员变量与局部变量.zip75.java成员变量与局部变量.zip75.java成员变量与局部变量.zip75.java成员变量与局部变量.zip75.java成员变量与局部变量.zip75.java成员变量与局部变量....

    final修饰成员变量和局部变量.md

    本文章是关于final部分知识所作的自我总结,内容为final对成员变量和局部变量修饰的简要解答,除了对自我java学习的一个小结,也希望能够帮助到在java路上对该内容疑惑的同行

    第04章 面向对象(上) 05 成员变量和局部变量

    在这一章中,我们将深入探讨面向对象中的一个重要概念:成员变量和局部变量。这两个概念是理解类和对象行为的关键。 首先,我们来讨论成员变量。成员变量,也称为实例变量,是定义在一个类中的变量。它们可以存储类...

    c语言中全局变量和局部变量的探讨

    ### C语言中全局变量和局部变量的探讨 #### 引言 C语言作为一种高效、灵活的编程语言,在软件开发领域有着广泛的应用。然而,对于初学者来说,掌握C语言的一些核心概念仍然存在一定的难度,尤其是在处理函数的递归...

    Java成员变量类变量局部变量的区别共5页.pdf.zip

    - 存储位置:成员变量和类变量存储在堆内存中,而局部变量存储在栈内存中。 - 生命周期:成员变量随着对象的创建而存在,对象销毁时消失;类变量随着类的加载而存在,直到程序结束;局部变量仅在声明它的方法或...

    c语言全局变量和局部变量问题汇总

    ### C语言全局变量和局部变量问题汇总 #### 概述 在C语言编程中,变量是存储数据的基本单元。根据其作用范围的不同,可以将变量分为两大类:全局变量(Global Variables)与局部变量(Local Variables)。理解这两...

    Java成员变量局部变量静态变量成员方法全局方法等概念的区

    成员变量和局部变量用于存储数据,而成员方法和静态方法则用于执行操作。在设计类时,应根据数据和行为的关联来决定变量和方法的类型。合理地使用静态和非静态成员,可以帮助优化内存使用,同时保持代码的整洁和高效...

    VB6.0中静态变量和局部变量的区别

    理解VB6.0中的静态变量和局部变量的差异对于编写高效、清晰的代码至关重要。选择适当的变量类型可以提高代码的可读性,减少错误,并优化内存使用。在实际编程中,应根据具体需求和逻辑来决定使用哪种类型的变量,以...

    java 成员变量与局部变量的区别(csdn)————程序.pdf

    Java编程语言中有两种主要的变量类型:成员变量和局部变量,它们在定义、作用范围、默认值、内存位置以及生命周期方面都有所不同。 首先,**定义的位置**是两者最基本的区别。成员变量,也称为实例变量,是定义在类...

    局部变量 与 全局变量

    通过代码的运行,并理解代码,明白C中的局部变量与本地变量的区别

    全局变量、局部变量、静态全局变量、静态局部变量的区别

    2. **生命周期**:全局变量和静态全局变量在整个程序运行期间都存在,而局部变量和非静态局部变量在其所属函数调用结束后即被销毁。 3. **初始化和存储位置**:静态局部变量和静态全局变量在程序加载时只初始化一次...

    静态全局变量,静态局部变量,全局变量,局部变量

    - **面向对象设计中的static**关键字用于定义类的静态成员变量和静态成员函数,这些成员与类本身相关,而不是与某个特定对象实例相关。 理解这些变量类型及其特点有助于编写更高效、更安全的代码。

    全局变量、局部变量、静态变量即内存管理

    在这五个部分中,全局变量、静态变量、局部变量和堆区中分配的变量都是程序中最常用的变量类型。 全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量...

    浅谈静态变量、成员变量、局部变量三者的区别

    值得注意的一点是,如果局部变量和成员变量同名,那么在方法内部,局部变量会覆盖成员变量的引用,遵循“就近原则”。因此,当在方法内使用变量时,应确保清楚地知道正在访问哪个变量。 总之,理解这三种变量类型...

    VC++结构体成员变量和方法

    本篇文章将深入探讨VC++中结构体的成员变量和方法,以及如何实现结构体成员的调用。 1. **结构体与类的区别** - 默认访问修饰符:在C++中,类的成员默认是私有的(private),而结构体的成员默认是公有的(public...

    全局 局部变量以及static 变量区别

    - 当设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需考虑重入问题。 - 为了创建可重入的函数,应避免在函数中使用`static`变量。 - **特殊用途**: - 当函数返回值为指针类型时,通常使用...

    06_JavaSE面试题:成员变量与局部变量.avi

    06_JavaSE面试题:成员变量与局部变量

Global site tag (gtag.js) - Google Analytics