发表于: 2016-08-30 00:02:00
0 2153
今天的任务:熟悉js的作用域。
收获: 块级作用域与函数作用域:
块级作用域:
任何一对花括号中的语句都属于一个块。这里米娜定义的所有变量在代码块外都是不可见的
(简单的理解为用{}括起来的称为块级作用域)。
函数作用域:
定义在函数中的参数和变量在函数外部是不可见的。
好像这两者很相似。如何区分呢?
由于js属于弱类型的语言是没有块级作用域的(初级可以简单这么理解)。
那c语言的例子来说:
#include<studio.h>
voin main()
{
int i=2;
i--;
if(i)
{
int j=3;
}
printf("%d/n",j);
}
这个函数输出会报错,找不到变量j;
因为j实在if语句里面声明的 j是包含在if{}里面的
所以if语句执行完后 变量j就会消失。
在js中:
function text()
{
for(var i=0;i<3;i++){};
alert(i);
}
test(); //3;
为什么在块外定义变量i仍然可以访问。
其实 js并不支持块作用域,只支持函数作用域。
评论