javascript---作用域
Posted 游鱼与渔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript---作用域相关的知识,希望对你有一定的参考价值。
作用域
什么是作用域?
作用域就是你的代码在运行时,各个变量、函数和对象的可访问性。换句话说,作用域决定了你的代码里的变量能否被外界引用。
为什么需要作用域?
最小访问原则。作用域为代码提供了一个安全层级,不同作用域互不干扰。有利于追踪bug而且避免了同名变量冲突。
作用域有哪些?
全局作用域 (window)
局部作用域(函数)
块级作用域(ES6 let/const关键字)
js中的作用域指的是词法作用域。一段js代码执行需要经过2个阶段:
1.编译阶段--编译器会编译你的代码(词法化),这个时候,你的作用域就已经确定了的
2.执行阶段--js引擎开始执行你的代码
js的作用域跟执行上下文经常被混淆。如何区分呢?
作用域是在编译阶段就已经确定了的, 而执行上下文是在函数被执行的时候创建的(执行上下文以后会讲到,注意:全局作用域可以看成一个特殊的‘执行上下文’,先把window理解为一个函数吧)
以上是关于javascript---作用域的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript中高级进阶推荐一个JavaScript进阶深入系列专题系列(涉及原型作用域执行上下文变量对象this闭包按值传递callapplybindnew继承等