1.<script language="javascript">
function abc(y)
{
var z;
z=y+10;
}
x=13;
abc(x);
alert(z);
</script>如果abc函数中使用了var z定义z,则不会执行,除非去掉var z,为什么啊`?不能定义一下z吗?2.<script language="javascript">
function abc(x)
{
x=5
}
x=13;
abc(x);
alert(x);
</script>为什么执行结果是13,而不是5啊?刚学习JS,谢谢大家啦``
function abc(y)
{
var z;
z=y+10;
}
x=13;
abc(x);
alert(z);
</script>如果abc函数中使用了var z定义z,则不会执行,除非去掉var z,为什么啊`?不能定义一下z吗?2.<script language="javascript">
function abc(x)
{
x=5
}
x=13;
abc(x);
alert(x);
</script>为什么执行结果是13,而不是5啊?刚学习JS,谢谢大家啦``
x=13
abc(x)
就相当于abc(13)
所以alert的结果就是13
function abc(y)
{
var z;
z=y+10;
}
x=13;
abc(x);
alert(z);
</script>你用了 var 就是声明一个局部变量啊
函数外面当然看不到了 function abc(x)
{
x=5
}
x=13;
abc(x);
alert(x);
</script
这个做法没社么意义啊改成 function abc()
{
x=5
}
x=13;
abc();
alert(x);就是5了
基本上就是这个意思第二问你明明就在外面声明的变量x啊
你函数里的x只是传进来的参数而已。另外纠正上面一楼的错误说法
在js中{}里面不代表是局部变量 只有函数是最基本的模块,那么只有在函数体内声明的变量才是局部的,但是如果不使用var来声明的话,依然是全局的。而类似for if的{}里是没有局部作用域的。
这个会不会是全局变量和局部变量的问题。<script language="javascript">
function abc(x) //这个参数x 跟下面x =5 和 方法外边的x=13这个x不是同一个变量,所以最后alert(x)只是将方法外边的x的值打印出来
{
x=5
}
x=13;
abc(x);
alert(x);
</script>
function abc(x) //这个参数x 跟下面x =5 和 方法外边的x=13这个x不是同一个变量,所以最后alert(x)只是将方法外边的x的值打印出来
{
x=5
}
x=13;
abc(x);
alert(x);
</script>abc(x),只是重新生成了一个对象,而x的值依旧为13,所以alert(x),当然是13了