Skip to content

Instantly share code, notes, and snippets.

@FrankFan
Created March 18, 2015 03:16
Show Gist options
  • Save FrankFan/7a8e2fbd45210262f2c5 to your computer and use it in GitHub Desktop.
Save FrankFan/7a8e2fbd45210262f2c5 to your computer and use it in GitHub Desktop.
js作用域
<input type="button" class="btn btn-primary" value="按钮A" onclick="AA();" /><br /><br />
<input type="button" class="btn btn-primary" value="按钮B" onclick="BB();" /><br /><br />
<input type="button" class="btn btn-primary" value="按钮C" onclick="CC();" /><br /><br />
<input type="button" class="btn btn-primary" value="按钮D" onclick="DD();" /><br /><br />

js作用域

js作用域知识点:

  1. 变量提升
  2. 不用var关键字声明的会成为全局变量
  3. 作用域链

A Pen by FrankFan on CodePen.

License.

/* 答案是1,因为已经先有了变量b,重复声明它并不会使它被重新初始化,也不会使它的值丢失*/
function AA() {
b = 1;
var b;
alert(b);
}
/*答案是function a() { }, 因为在第二行的语句中对a重新赋值了*/
function BB() {
function a() { };
var a; // js语法灵活,可以先赋值后声明,但为了程序有很好的可读性,建议将声明语句放到顶部
alert(a);
}
/*答案是undefined 5 加了var就变成局部变量了*/
function CC() {
var a = 10;
function b() {
alert(a); // undefined
var a = 5;
alert(a);
}
b(); //执行方法b
}
/*答案是10 5*/
function DD() {
var a = 10;
function b() { alert(a); a = 5; alert(a); }
b();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment