解决方案 »
- <a href="javascript:void(0);" class="login" id="user_btn" tabindex="3">登 录</a>
- 请问jquery的ui中的tabs,如何能是tab标签在下面?解决立即给分
- 请问在JS中如何判断一个用window.open()方法打开的窗口已经关闭了?
- 简单的变量名怎么写
- NET中同时弹两个修改确认框的问题!
- 请教梅花日期控件的问题
- javascript模拟鼠标点击 不知道错在哪里
- 有个框架页,左边是菜单,右边是内容,如何点击菜单变化右边内容时将框架页的<Title>也变化
- 怎样得到选中的内容(文字)呢?100分!!
- 怎样隐藏js脚本文件?
- 关于鼠标释放时的位置问题
- 可编辑DIV中光标为何自动跳转?
我改了改你这代码(大概效果应该是一样吧) 这样我比较容易说明些 - -!,望见谅。var aNumber = 100; //编号1
function tweak()
{
var aNumber; // 编号:2
aNumber = 1; //编号3
}
tweak();
alert(aNumber); //编号4
简单的说 在这里编号1的变量就是全局变量,当没有注释掉编号2的代码时,"var" 定义与编号1名称相同的变量时候就是定义的局部变量了,所以在编号3中对其进行赋值,就是赋值给tweak函数的局部变量。而最后alert调用的是编号1的全局变量的值为100。当注释掉编号2的代码时, 由于没有用“var”定义aNumber变量 所以这时候就是tweak函数调用了全局变量并对其进行赋值,所以弹出的值为1。归纳就是 在局部调用与先前相同名称的变量时候 如果使用了关键字"var"重新定义了变量名,那这个就是局部变量,对其赋值也好做什么也好都与先前相同名称的变量无关,相反,则是在调用先前定义了的变量。
只有全局和局部变量的概念。
在一个函数中用var声明的变量是局部变量,作用域只在一个函数体中。
所以你的第一个显示1
第二个显示100
/**定义参数范围问题? begin**/
var aNumber = 100;
function tweak() {
var newThing = 0; // 显式声明 newThing 变量。
aNumber = 1;
return ;
if (false) {
var aNumber;//无论执行与否,这里的aNumber定义作为局部变量使用,覆盖外部全局变量定义
}
}
tweak();
alert(aNumber);//获取的是全局变量
/**定义参数范围? begin**/
同意!
if(false)
{
var number;
}
var number已经在if语句之前就执行了。
不论var 在哪,都会被提升到语句最前,但赋值不会被提升,如:var number=1 只会提升var number
详情见:http://topic.csdn.net/u/20090913/11/da9afa35-768c-4f12-8157-80295b5fc2c0.html?98991
js在执行代码的时候,会先开始收集所有的申明但是我想不通的是,js在获取变量的时候是从局部到全局收索的,如果局部与全局有同名应该是用局部的啊最后那个应该返回一个undefined难道我理解错了,我是菜鸟