为了账号安全,请及时绑定邮箱和手机立即绑定

js 函数的参数声明中用 var 与不用 var的区别?

js 函数的参数声明中用 var 与不用 var的区别?

哆啦的时光机 2019-02-09 11:07:05
看清问题!是函数声明中的参数 !!!!!!!!!!!!!!!!function abc(var a){}function def(a){}
查看完整描述

4 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

这里有一个地方需要注意,函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!

test();
function test()
{
i=1;
}
alert(i);

你试试,i前面加 var 和不加时候的区别就知道了.



查看完整回答
反对 回复 2019-03-26
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

JavaScript是弱类型语言
在声明变量时 不需要注明变量类型

但是请在声明变量的时候写var 这样代码比较规范

还涉及一个静态变量的问题。

查看完整回答
反对 回复 2019-03-26
?
www说

TA贡献1775条经验 获得超8个赞

没错 JavaScript是语言强度比较弱,可以声明也可不声明。

不管是 参数声明 还是 变量的声明 都是一样的,都是因为JavaScript是语言强度问题,说到 区别 在作用方面是没有的,但是 还是推荐 声明的好,按严禁的 语法 规范写,变量 不容易混乱,而且 作用范围 也很清晰。

查看完整回答
反对 回复 2019-03-26
?
噜噜哒

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 , 属于语法错误



查看完整回答
反对 回复 2019-03-26
  • 4 回答
  • 0 关注
  • 1058 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信