4 回答
![?](http://img1.sycdn.imooc.com/545865da00012e6402200220-100-100.jpg)
TA贡献1843条经验 获得超7个赞
这里有一个地方需要注意,函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!
test();
function test()
{
i=1;
}
alert(i);
你试试,i前面加 var 和不加时候的区别就知道了.
![?](http://img1.sycdn.imooc.com/545847f50001126402200220-100-100.jpg)
TA贡献1775条经验 获得超8个赞
没错 JavaScript是语言强度比较弱,可以声明也可不声明。
不管是 参数声明 还是 变量的声明 都是一样的,都是因为JavaScript是语言强度问题,说到 区别 在作用方面是没有的,但是 还是推荐 声明的好,按严禁的 语法 规范写,变量 不容易混乱,而且 作用范围 也很清晰。
![?](http://img1.sycdn.imooc.com/5458655200013d9802200220-100-100.jpg)
TA贡献1784条经验 获得超7个赞
var 声明的变量,作用域是当前 function
没有声明的变量,直接赋值的话, 会自动创建变量
但作用域是全局的.
//-----------------
function doSth() {
a = "AAA";
}
doSth(); // 执行一次 doSth
alert(a); // 可以看到 "AAA"
//-----------------
如果用了 var
//-----------------
function doSth() {
var a = "AAA";
}
doSth(); // 执行一次 doSth
alert(a); // 出错!!! 变量未定义, 因为 doSth 中声明的变量作用域只是 doSth 函数.
//-----------------
另外,如果 函数套函数,还会使情况变得更加复杂
--------------------------------------------------------
函数定义中,声明的函数参数作用域都是函数本身的
如果,在参数声明中出现 var , 属于语法错误
- 4 回答
- 0 关注
- 1058 浏览
添加回答
举报