`

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程序设计基础:变量的作用域.pptx

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

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

    作用域永远都是任何一门编程语言中的重中之重,因为它控制着变量与参数的可见性与生命周期。讲到这里,首先理解两个概念:块级作用域与函数作用域。 什么是块级作用域呢? 任何一对花括号({和})中的语句集都属于...

    浅谈Javascript变量作用域问题

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

    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函数作用域学习示例(js作用域)

    在一些类似c语言的编程语言中,花括号内的每一... 在如下代码中,在不同位置定义的i,j和k,他们再同一个作用域内都是有定义的 代码如下:function text(o) { var i=0; alert&#40;typeof o&#41;; if(typeof o == “s

    JavaScript — 原型链与作用域链1

    i++) {// 块级作用域}作用域每次执行都会生成一个新的活动对象作用域内的所有变量自动成为活动对象中的属性只有在作用域执行时才解析活动对象内的属性值作用域每

    变量的作用域.zip

    变量的作用域

    javascript的函数作用域

    在一些类似c语言的编程语言中,花括号内的... 在如下代码中,在不同位置定义的i,j和k,他们再同一个作用域内都是有定义的 代码如下: function text(o)  {   var i=0;   alert&#40;typeof o&#41;;   if(typeof o

    深入理解JavaScript中的块级作用域、私有变量与模块模式

    1.块级作用域(私有作用域),经常在全局作用域中被用在函数外部,从而限制向全局作用域中添加过多的变量和函数。 (function(count){ for(var i=0;i&lt;count&gt;0、1、2、3、4 } console.log(i);//=&gt;5 })(5); ...

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

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

    为什么JavaScript没有块级作用域

    JavaScript 中没有块级作用域 可能会对这个问题大家可能有点不理解,先看个例子 var a = [] for(var i = 0; i &lt; 10; i++){ a[i] = function(){ console.log(i); } } a[6](); 我想很多人会觉得这个问题的结果...

    python3作用域

    python3的作用域和C/C++有所不同 1、 按照L -&gt; E -&gt; G -&gt; B的顺序查找变量 L (Local) 局部作用域 E (Enclosing) 函数外上一层的函数中 G (Global) 全局作用域 B (Built-in) 内建作用域 2、只有在模块module...

    JS块级作用域和私有变量实例分析

    上例中,定义了一个块级作用域,变量i在块级作用域中可见的,但是在块级作用域外部则无法访问。 这种技术经常在全局作用域中被用在函数外部,从而限制向全局作用域中添加过多的变量和函数。 私有变量 任何在函数中...

    3.8 函数参数与变量的作用域(ppt).zip

    3.8 函数参数与变量的作用域(ppt)

    3.8 函数参数与变量的作用域(ppt).pdf

    3.8 函数参数与变量的作用域(ppt)

    第3章计算面积周长——方法与作用域.ppt

    第3章计算面积周长——方法与作用域.ppt

    深入理解JS中的变量及作用域、undefined与null

    javascript中,变量主要分为局部变量和全局变量两种,对应的作用域也是局部作用域和全局作用域。 1 局部变量和作用域 局部变量一般在函数体内部声明使用: function func(){ var i=12;//局部变量 ...... } 局部...

    通过5个知识点轻松搞定Python的作用域

    1、块级作用域 想想此时运行下面的程序会有输出吗?执行会成功吗? #块级作用域 if 1 == 1: name = "lzl" print(name) for i in range(10): age = i print(age) 我们先看下执行结果 C:/Users/L/PycharmProjects/...

    react-scoped-styles:React的作用域样式

    React的作用域样式 获取由组件目录界定CSS类 它与CSS模块有何不同? 在CSS模块中,您必须手动导入和分配类 import styles from './button.styl' ; const Button = ( ) =&gt; ( &lt; button className = { styles . foo...

    Javascript学习笔记之函数篇(六) : 作用域与命名空间

    在之前的介绍中,我们已经知道 Javascript 没有块级作用,只有函数级作用域。 代码如下: function test() { // a scope  for(var i = 0; i &lt; 10; i++) { // not a scope  // count  }  console.log(i); // ...

Global site tag (gtag.js) - Google Analytics