前言:什么是Scope?
Scope其实就是,代码在运行时,代码中的变量或者函数的可访问性;
Scope决定了变量或者函数,在哪些地方可以被访问,哪些地方不可以访问;
一、全局作用域
在任何地方都可以被访问的变量,就拥有全局作用域,这个变量也被称为“全局变量”
// 全局变量
const name = "zs";
export default {
created() {
console.log('created', name);
},
mounted() {
console.log('mounted', name);
},
};
结果
该
name
变量是全局变量,可以再任何地方被访问
二、局部作用域
局部作用域,是只能在某些特定的代码片段内被访问,例如函数内部;
export default {
created() {
// 局部变量
let name = "zs"
console.log('created', name);
},
mounted() {
// 不可以访问name变量
console.log('mounted', name);
},
};
结果
在
created
方法中声明的变量name
是局部变量,只能在created
方法中访问,不能在其他方法内访问(例如mounted
)
三、块级作用域
块级作用域,只有在块{}
的内部才可以被访问;
export default {
mounted() {
let result = true;
if (result) {
// 块级作用域
let name = "zs"
console.log(name);
}
console.log('create', name);
},
};
结果
name
变量在块级作用域内,所以只能在if
内部被访问,不能被块外部访问;
只有let、const声明的变量才有会计作用域,而var声明的变量是没有块级作用域的
;
网友评论