javascript有块级作用域吗
这篇文章主要介绍javascript有块级作用域吗,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
创新互联建站成立与2013年,是专业互联网技术服务公司,拥有项目网站设计、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元通渭做网站,已为上家服务,为通渭各地企业和个人服务,联系电话:18982081108
在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有块级作用域吗
转载来源:http://pwwzsj.com/article/joddso.html