您的位置:首页 > Web前端 > JavaScript

JS中的作用域

2016-04-14 17:11 330 查看
遵循“预解析,逐行解读”

//预解析,逐行解读
alert(a);   //预解析后剩下function a(){alert(4);}
var a=1;
alert(a);   //1
function a(){alert(2);}
alert(a);   //1
var a=3;
alert(a);   //3
function a(){alert(4);}
alert(a);   //3

alert(typeof(a));   //number


当a为局部变量时


var a = 1;
function fn1()
{

alert(a);   //undefine
var a = 2;  //预解析,找到var,局部变量
}
fn1();
alert(a);   //1


当a为全局变量时


var a = 1;
function fn1()
{
alert(a);   //1
a = 2;      //全局变量
}
fn1();
alert(a);   //2


和函数形式不一致,调用未传参

var a = 1;
function fn1(a)
{
alert(a);   //undefine
a = 2;      //全局变量
}
fn1();  //调用的时没有传参,函数里的为undefine
alert(a);   //1


和函数形式一致,调用传参


var a = 1;
function fn1(a)
{
alert(a);   //1
a = 2;      //全局变量
}
fn1(a);     //调用的时候传入1
alert(a);   //1


自下往上寻找父级变量


var num = 0;
function fn1()
{
num++;
}
function fn2()
{
num++;
}

fn1();
fn2();
alert(num);


取出局部变量


var str = '';
function fn1()
{
var a = '你好';
str = a;
}
fn1();
alert(str);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息