`

i的作用域问题

 
阅读更多

先了解一个技术问题:

i的作用域决定i=?

之所以要讲这个问题就是因为我们对这个知识点不了解或在编码的时候不在意,才会导致我们让这么多“死循环”发生。

<script type="text/javascript">
var objObj = {
vaa : function() {
var i = 0;
alert(i);
},
i : 2,
aa : function() {
i = 3;
}
}
alert(objObj.aa());// 1
alert(window.i);//2
alert(objObj.i);//3
objObj.vaa();//4
</script>

这里的i有三个作用域:

代码1,2是创建作用为全局的变量i,这个i 网页中所有的脚本包括引入的.js文件都共应这个变量i

代码3使用的是objObj这个对象的字段,即任何地方要使用这个i必须用objObj.i 才能引用到(当然objObj内部可以用this.i)

代码4使用的是objObj对象方法(函数)中的i,即 方法vaa中的i,这个i 再vaa中定义(注意一定要加上变量描述符var ,如果不加则表示定义全局变量i),其作用域只在vaa函数体内。

 

分享到:
评论

相关推荐

    java内置对象作用域

    Java内置对象是Java语言提供的一些预定义对象...了解和熟练掌握这些内置对象的作用域,有助于优化代码的性能,避免并发问题,并有效地利用Java提供的功能。在实际编程中,合理使用和管理这些对象将极大地提高代码质量。

    js变量作用域

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

    javascript 闭包、匿名函数、作用域链

    JavaScript中的闭包、匿名函数和作用域链是编程中至关重要的概念,它们是理解JavaScript运行机制的关键。在本文中,我们将深入探讨这三个概念,并通过实际示例来展示它们的运用。 首先,我们来讨论“闭包”。闭包是...

    Scope(作用域).md

    - **定义**:作用域链是一种机制,用于解决嵌套作用域中的变量查找问题。每当一个函数被调用时,都会创建一个新的作用域链,其中包含当前函数的作用域以及它的外部作用域。这样,函数可以访问其外部作用域中的变量。...

    Javascript的词法作用域分析.pdf

    Javascript词法作用域分析 Javascript中的词法作用域分析是指变量的作用域不是在执行时决定的,而是在定义时决定的,也就是说通过静态分析就能确定。因此,词法作用域也叫做静态作用域。 在Javascript中,一个方法...

    Java程序设计基础:变量的作用域.pptx

    i的作用域 j的作用域 局部变量 变量的分类及作用域 全局变量 含义:方法内定义的变量称为局部变量,方法形参也是局部变量。 作用域:从该变量声明开始,到包含该变量的块结束为止。 含义:在方法的外面、类的内部...

    JavaScript的作用域和块级作用域概念理解

    尽管`i`是在`for`循环内部定义的,但它在整个`test`函数内都是可见的,这就是JavaScript的函数作用域特性。 为了实现类似块级作用域的效果,JavaScript引入了ES6的`let`关键字。使用`let`声明的变量具有块级作用域...

    PHP中的变量作用域

    ### PHP中的变量作用域详解 #### 一、引言 在PHP编程中,理解变量作用域是非常重要的。正确的使用变量作用域能够...在未来的学习和开发过程中,建议深入探索更多关于作用域的知识,以便更灵活地运用它们解决实际问题。

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

    JavaScript是Web开发中不可或缺的一部分,尤其在前端领域,它的核心概念之一就是变量的作用域。本文将深入探讨JavaScript中的变量作用域,以及它如何影响代码的运行和组织。 首先,我们来理解什么是变量作用域。在...

    Web前端开发技术-认识函数作用域.pptx

    **认识JavaScript函数作用域** 函数作用域是编程中一个关键概念,它决定了变量在何处可以被访问。在JavaScript中,作用域...理解作用域规则可以帮助我们更好地控制代码的执行和资源管理,避免潜在的错误和性能问题。

    Js作用域和this关键字1

    这可能导致性能问题,因为它会改变作用域链,影响查找效率,且不推荐使用,因为它可能导致意外的副作用。 总结,JavaScript的作用域和`this`关键字是理解和编写高效、无错误代码的关键。正确地使用它们可以避免许多...

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

    JavaScript是一种广泛用于网页开发的脚本语言,它的函数和作用域是实现代码逻辑结构和模块化的重要元素。在JavaScript中,函数是可执行的代码块,能够被多次调用,并且可以返回数据到调用它的地方。同时,变量作为...

    浅谈Javascript变量作用域问题

    Js中的变量作用域问题: 1、没有块级作用域。Js中的变量作用域不是以{}为界的,不像C/C++/Java。 如: 代码如下:  if(true){  var name = “qqyumidi”;  }    alert&#40;name&#41;; // 结果:qqyumidi Js会...

    「Python系列」Python命名空间和作用域,命名空间(Namespace)和作用域(Scope)是两个非常重要的概念.md

    作用域主要涉及变量和其他对象的可见性问题。在Python中,作用域主要包括以下四种类型: 1. **局部作用域**(Local Scope):函数内部定义的变量仅在其所在函数内可见。这种作用域是最小的作用域,只包含函数内的...

    javascript函数作用域学习示例(js作用域)

    JavaScript中的作用域是一个非常核心的概念,它决定了变量和函数的可见性和生命周期。在学习JavaScript作用域之前,我们需要先了解在其他编程语言中常见的块级作用域(block scope)。在像C语言这样的编程语言中,每...

    变量的作用域.zip

    在编程领域,变量的作用域是理解程序执行过程中的关键概念之一。它定义了变量在何处可以被访问,以及它的生命周期。下面将详细解释这个主题,同时结合提供的文件列表,我们可推断这是一个关于C++编程的学习资料,...

    python中for循环变量作用域及用法详解

    return [lambda x: x**i for i in range(1,5,2)] print([f(3) for f in foo()]) 伙伴们,你们认为这里产生的结果是什么呢?我们再来看下这题的变体: 代码:2 def foo(): functions=[] for i in range(1,5,2): ...

    JavaScript — 原型链与作用域链1

    块级作用域通过`for`循环中的`let`关键字创建,变量`i`只在循环内部可见。函数`function(e) {...}`则有自己的作用域,`this`在这里根据调用方式不同可能指向不同的对象,`arguments`对象包含传递给函数的所有参数。 ...

    闭包作用域

    ### 闭包作用域 #### 一、JavaScript闭包简介 ...通过理解闭包的作用域和生命周期,开发者可以更好地利用闭包来解决实际问题,并避免潜在的内存管理问题。掌握闭包的使用对于成为一名合格的前端工程师至关重要。

Global site tag (gtag.js) - Google Analytics