块级作用域
块级作用域是指花括号内的每一段代码都具有各自的作用域,而javascript没有块级作用域。javascript只有函数作用域:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的
这意味着,变量在声明之前甚至已经可用。javascript这个特性被非正式地称为声明提升(hoisting),javascript函数里声明的所有变量(不涉及赋值)都被提前到函数体的顶部
[注意]其实除了变量提升,函数也被提升,到函数部分会有详细介绍
<pre>
var scope = 'global';
function f(){
console.log(scope);//undefined
var scope = 'local';
console.log(scope);//'local'
}
</pre>
这里要注意的是undefined和报错的区别(undefined并不是错误,只是没有定义而已)
js声明提升
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大...
- 在说有关知识之前先让大家看几段代码: 很简单对吧?输出结果是“Hellow world!”,没有任何问题,好,我们...