let a="a"; let c="c"; function bar(){ let a="bra_a"; console.log(c); //c 该值由查询到全局作用域后获取 function foo(){ console.log(a); //bra_a,这是一个取值操作,首先查询foo作用域没有,再查询bar作用域查到了就停止。 //console.log(b); // ReferenceError: b is not defined console.log(c); //c 该值由查询到全局作用域后获取 } foo(); }3. bar();
let a="a" function foo(){ console.log(a);//a 在fun中执行时,foo作用域并不是在fun作用域的下级,所以这里输出a // console.log(b);//ReferenceError:报错 尽管在fun作用域内执行此方法,但是它的作用域与fun作用域属于同等级关系关系。 } function fun(){ let a="a_fun"; let b="b_fun"; function boo(){ console.log(a);//“a_fun” 由于boo作用域定义时处在fun作用域内,所以这里在boo作用域未查找到后,往上查fun作用域。 console.log(b);//"b_fun" } foo(); boo(); } fun();
1 function fun(a){ 2 console.log(a); 3 } 4 fun(5);
1 function fun(a,b,c=77) { 2 console.log("a:",a);//5 3 console.log("b",b);//6 4 console.log("c",c);//7 5 console.log("arguments:",arguments); //{ ‘0‘: 5, ‘1‘: 6 } 6 b=12 ;//var b=10;这里都一样 7 arguments[0]=10; 8 c=14; 9 arguments[2]=21; 10 console.log("b:",b); // 12 11 console.log("a:",a);//10 12 console.log("c:",c);//7 13 console.log("arguments:",arguments); //{ ‘0‘: 10, ‘1‘: 6, ‘2‘: 7 } 14 } 15 fun(5,6,7)
原文:https://www.cnblogs.com/bojunyixiao/p/15229331.html