本人刚学JavaScript,遇到一个问题,请各位大侠赐教!
代码如下:
<script language="javascript">
scope="global";
function checkscope() {
scope="local";
document.writeln(scope);
myscope="local";
document.writeln(myscope);
}
其中,scope和myscope是全局变量还是局域变量?
代码如下:
<script language="javascript">
scope="global";
function checkscope() {
scope="local";
document.writeln(scope);
myscope="local";
document.writeln(myscope);
}
其中,scope和myscope是全局变量还是局域变量?
一般情况下,如果变量名不重复的话,一个变量只在其大括号范围内有效
to 1楼:你的解释是完全错误的。
在js中没有块作用域,这意味着
for() {
var i = 0;
}
这个i也是全局变量to 2楼:myscope在checkscope()执行完毕之后方可成为全局变量,其实质在于myscope没有用var定义。则在执行的过程window.checkscope()的时候,window作为调用对象,这个myscope就成了window的一个属性了。
比如
function checkscope() {
scope="local";
document.writeln(scope);
var myscope="local";
document.writeln(myscope);
}
这个时候myscope就是个局部的变量了
myscope是全局变量
另外 myscope只有在checkscope函数执行之后才会有用 不然 就是underfined
window['scope']="global"; 对要显示定义