求助,javascript函数形参声明时有var和没有var有什么区别?
我的习惯是
function funcA(str){
}
但是我在网上见过有人写成:
function funcA(var str) {
}
我是一个菜鸟,想问一下这两种形参的声明方法有什么不同
------解决方案--------------------
你的第二种写法好像是不对的,形参不用加var的,网上很多人说,javascript声明一个变量,有没有var都一样,其实不对的,没有加var话,其实不是声明了一个变量,只是给window对象加了一个属性而已,只有加了var才是声明一个变量,你可以复制下面的代码运行一下。
JScript code
<script type="text/javascript">
attribute=10; //给window对象添加一个属性attribute
alert(attribute); //弹出属性的值
var flag = delete window.attribute; //删除window的attribute属性
alert(flag); //弹出true,证明属性删除成功了
//alert(attribute); //这里会报错,因为window的attribute属性已经被删除了
var variable=10; //声明一个变量
alert(variable); //弹出变量variable的值
flag = delete window.variable; //删除window的属性
alert(flag); //弹出false,删除window属性失败,因为variable是一个变量,不是window的属性
alert(variable); //弹出变量variable的值
</script>
上面打错一个字,意思反了,现在重新回复一下
------解决方案--------------------
------解决方案--------------------var声明的全局变量MS也是window的一个属性啊~....
------解决方案--------------------