-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[js] 第13天 说说你对javascript的作用域的理解 #40
Comments
|
1:全局作用域 |
|
补充一下:
|
在 ES5 之前,javascript 只有函数作用域而没有块级作用域的。即,在 for(var i = 0; i < 10; i++){var j=123}
console.log(j) // 123; 不过使用 ES6 的 而函数作用域通过其作用域链的关系,可以实现变量的封装防止污染。子层的函数可以访问父级以及全局的的变量,但反过来则不行。这样子层函数中的变量就与外层隔绝开了。 var a = 1;
function b(){
var b = 2;
console.log(a);
function c(){
// 内部可以访问外部,而外层访问不到内部
var a = 4;
var c = 3;
console.log(a); // 4 不会污染
console.log(b); // 2
}
c();
}
console.log(b());
console.log(a); |
作用域 |
函数作用域内可以访问全局作用域的变量,全局作用域不能访问函数作用域的变量。 |
理解:作用域就是一块封闭的区域,外部不能访问到这块区域里的变量、函数等,被{}包裹的就叫一个作用域(全局作用域是特殊的) 类型:函数作用域、全局作用域和块作用域 变量提升:在用var 或者function声明一个变量和函数时,变量和函数会被提升到函数的顶部 |
全局作用域 |
优秀 |
全局作用域 |
当前的执行上下文。值和表达式在其中 "可见" 或可被访问到的上下文 |
|
作用域分为全局作用域和块级作用域(函数作用域) |
负责收集和维护所有变量组成的一系列查询,并实施一套严格规则,确定当前执行的代码对这些变量的访问权限 |
/*
这些变量其实可以被括号外层访问得到,如下面的a,而在使用let和const后,大括号{}内 |
概念作用域即当前的执行上下文,在运行时代码中的某些特定部分中变量,函数和对象的可访问性。 作用域决定了代码区块中变量和其他资源的可见性 作用域就是一个独立的地盘,让变量不会外泄、暴露出去(隔离变量),不同作用域下同名变量不会有冲突 ES6 之前 JavaScript 没有块级作用域,只有全局作用域和函数作用域 全局作用域
函数作用域
块级作用域
|
js有两种作用域:全局作用域和局部作用域。变量在函数中声明,只能在函数中访问,局部变量在函数开始执行时创建,函数执行完成后变量自动销毁。变量在函数外定义,即为全局变量,如果变量在函数内没有用var关键字声明,该变量为全局变量,全局变量在页面关闭后销毁。 |
作用域分为:
|
全局作用域、函数作用域和块级作用域。 |
1 全局作用域:在全局中,最外层函数或函数外声明变量,全局都可以访问的到该变量;所有的window对象也都具有全局作用域; |
全局作用域和局部作用域,es6还有个块级作用域,就是是否能够访问到变量的一个限制 |
作用于是指变量和函数的可访问范围。又分为全局作用域即window下的都是全局,和局部作用域:函数或代码块。 |
全局作用域和局部作用域 |
作用域是当前的执行上下文,在其中的值和表达式可被访问。如果一个变量或表达式不在当前的作用域中,那么它是不可用的。 |
第13天 说说你对javascript的作用域的理解
The text was updated successfully, but these errors were encountered: