JavaScript复习笔记(2)——作用域、函数
为了准备笔试面试,重新开始系统的学习JavaScript,一边学习一边顺便给师弟师妹开个小灶,这是给他们准备的一道练习题,最后控制台会输出什么?
var a=(0,1); function ScopeTest(){ var b=(c=2,3); console.log(a); } if(0==false){//判断成功 ScopeTest();//输出1 } if(1===false){//判断失败 ScopeTest(); } (function(){ console.log(a);//输出1 console.log(c);//2 console.log(a+""+c);//12 console.log(a+[]);//1 console.log(b);//Uncaught ReferenceError: b is not defined })();
全局变量:a、c
局部变量:b
普通函数只定义,调用时才会执行
匿名函数直接执行,匿名函数的特征是1.没有函数名,2.加了各种奇怪的符号使得他不再是函数而是一个表达式,所以加()也是同理。
变量的作用域会自动向下延伸。函数中定义的变量,即可在函数内部使用,也可以在定义于此函数内的其他函数中使用(闭包)