javascript有没有块级作用域

发布时间:2022-05-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript有没有块级作用域脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

在JavaScript中,没有块级作用域的概念。在块级语句中定义的变量,实际上是在包含函数中创建的,而非在语句中创建的,可以将变量声明放在函数体顶部,而不是将声明靠近放在使用变量之处。

javascript有没有块级作用域

本教程操作环境:windows10系统、javascript1.8.5版、Dell G3脑。

javascript有没有块级作用域

Javascript没有块级作用域的概念。这意味着在块级语句中定义的变量,实际上是在包含函数中而非语句中创建的。

代码段1:

VAR scoPE="global";  
function f(){   
    console.LOG(scope);  
    var  scope="local"  
    console.log(scope);  
}  
f();

  会输出什么?

  答案:undefined local

  代码段2:

var scope="global";  
function f(){  
    var scope;  
    console.log(scope);  
    scope="local"  
    console.log(scope);  
}  
f();

  又会输出什么?

  答案:undefined local

  代码段3:

var scope="global";  
function f(){  
    console.log(scope);  
}  
f();

  又会输出什么?

  答案:global

  通过以上三个例子,下面解释“JavaScript没有块级作用域,有函数作用域”这句话。

  在JavaScript中,由于函数作用域的特性,代码段1和代码段2是等价的,局部变量在整个函数体是中是有定义的,

也就是说,代码段1在函数体内的局部变量scope覆盖了同名全局变量,并且只有在程序执行到var 语句的时候,局部变量scope才会被真正的

赋值。因此,上述过程等价于:将函数内的变量声明“提前”至函数体顶部,同时变量初始化留在原来的位置:也就是代码段2。

  在具有块级作用域的编程语言中,在狭小的作用域里让变量声明和使用变量的代码尽可能靠近彼此,通常来讲,这是一个非常不错的编程

习惯。由于JavaScript没有块级作用域,因此,一些程序员特意将变量声明放在函数体顶部,而不是将声明靠近放在使用变量之处。这种做法

使得他们的代码非常清晰地放映了知识的变量作用域。

相关推荐:javascript学习教程

以上就是javascript有没有块级作用域的详细内容,更多请关注脚本宝典其它相关文章

脚本宝典总结

以上是脚本宝典为你收集整理的javascript有没有块级作用域全部内容,希望文章能够帮你解决javascript有没有块级作用域所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: