JS的作用域:<strong>全局作用域、函数作用域、eval 作用域、块级作用域 </strong>
<h2>全局作用域:</h2>
var a=10;
function test() {
console.log(a);
};
test()
console.log(a);
//10 10
<h2>函数作用域:</h2>
function test() {
var a=10;
console.log(a);
}
test();
console.log(a);
结果截屏:
函数作用域
<h4>说明:</h4>
在函数中如果没有用 var 定义这样的关键字定义那它就还是全局变量:
function test() {
a=10;
console.log(a);
}
test();
console.log(a);
//10 10
<h2>eval 作用域:</h2>以 str 的方式运行 JavaScript 代码。
两种调用方式:<strong>直接调用、间接调用</strong>
<h4>直接调用:</h4>
调用名为 "eval" 的函数。
<h4>间接调用:</h4>
var x = 'global';
function directEval(){
'use strict';
var x = 'local';
console.log( eval('x') ); // local
}
<h2>块级作用域:</h2>
在 JS 中以前是没有块级作用域,但是 ES6 以后添加了块级作用域 let 。
for(let i=0;i<4;i++){
console.log('a');
}
console.log(i);
结果截屏:
let.png
for(var i=0;i<4;i++){
console.log('a');
}
console.log(i);
// a a a 4







网友评论