美文网首页
javascript 静态变量作用域

javascript 静态变量作用域

作者: 竞媒体 | 来源:发表于2018-08-03 13:32 被阅读0次

      avascript作用域其实是有一个简单的静态作用域规则来决定的。可以把这个规则想象成这样:

当查找一个变量引用时,该变量先在父对象里找。如果没有找到,就不断地重复这个过程,递归地

去父对象里查找,一直到全局变量的定义那层。如果最后还是没有找到,就针对该变量生成一个引用

错误。这样的作用域行为与大多数流行语言(Java、C#)中的变量处理方式大不相同。对于有Java

C#背景的人,需要提醒一下,Javascript没有实现块作用域(block scoping)。

for(var i=0; i<10; i++){

    for(var i=0; i<2; i++){

        console.log(i);

    }

}

对于上面这段代码,你可能觉得它会打印20个数字,其实在javascript里,这段代码会陷入到无限循环。

因为javascript没有实现块级别的作用域,所以里面那层循环的i会跟外面那层循环的i是同一个变量。于是

里面的循环改变了i的值,导致外面的循环永远不会结束。

for i in range(5):

    for i in range(2):

        print i

上面的代码将输出5个数字0和1 ,i变量只在本地循环内起作用。

相关文章

  • 【前端】-023-JavaScript-进阶篇-变量作用域

    变量作用域 JavaScript中变量的作用域 采用静态作用域(变量定义的位置决定了变量的引用) 没有块级作用域,...

  • 从 JavaScript 作用域说开去

    目录 1.静态作用域与动态作用域 2.变量的作用域 3.JavaScript 中变量的作用域 4.JavaScri...

  • 静态作用域与动态作用域

    1.作用域 当前执行代码对变量的访问权限,JavaScript采用的是词法作用域,也就是静态作用域; 2.静态作用...

  • 「JS」变量作用域

    作用域介绍静态作用域动态作用域 JavaScript 变量作用域词法环境组成创建结构关于词法环境的问题with 语...

  • 变量作用域

    变量作用域:静态作用域、动态作用域JS变量作用域:JS使用静态作用域JS没有块级作用域(全局作用域、函数作用域等)...

  • JavaScript 中的变量作用域

    JavaScript 中的变量作用域 JavaScript中的变量作用域被定义为函数作用域。 变量的值在定义该变量...

  • JavaScript 之 静态作用域与动态作用域

    静态作用域 JavaScript 采用词法作用域(lexical scoping),也就是静态作用域。 函数的作用...

  • JavaScript 作用域和作用域链

    JavaScript 作用域 作用域就是变量与函数的可访问范围。在JavaScript中,变量的作用域有全局作用域...

  • 作用域

    静态作用域 (词法作用域) 和 动态作用域 下面的例子可以帮助理解 假设 JavaScript 采用 静态作用域,...

  • js作用域、作用域链、闭包

    作用域 1.javascript局部作用域 变量在函数内部声明,变量为局部作用域. 2.javascript全局变...

网友评论

      本文标题:javascript 静态变量作用域

      本文链接:https://www.haomeiwen.com/subject/qieyvftx.html