js变量前有 var 与没有的区别
生活随笔
收集整理的這篇文章主要介紹了
js变量前有 var 与没有的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
var 不一定是用來定義局部變量的 jscript的全局變量和局部變量的分界是這樣的:
過程體(包括方法function,對象Object o ={})外的所有變量不管你有沒有加var保留字,他都是全局變量
而在過程體內(包括方法function(){},對象Object o={})內的對象加var保留字則為局部變量,而不加var保留字即為全局變量
js的全局作用域應該是在看著辦的的范圍內,不一定是同一個頁面,比如說在一個iframe里就不可以調用嵌入他的頁面的JS
===========情況1=================================================?
<script ? language= "javascript ">?
? ? ? ? ? ? ? z=1;//全局變量?
? ? ? ? ? ? ? ? function ? aa()?
{?
? ? ? alert(z);?
? ? ? z=2; ? ? //z為函數里,沒有用var聲明的全局變量?
? ? ? alert(z);?
}?
bb();?
alert(z)//結果為2?
</script>?
===========================================?
==================情況2====================?
<script ? language= "javascript ">?
? ? ? ? z=1;//全局變量?
function ? bb()?
{?
? ? ? var ? z?
? ? ? alert(z);//結果為undefined?
? ? ? z=2; ? ? //z為函數里,用var聲明的局部變量?
? ? ? alert(z);//結果為2?
}?
bb();?
alert(z)//結果為1?
</script>?
================情況3====================?
<script ? language= "javascript ">?
? ? ? ? z=1;//全局變量?
function ? cc()?
{?
? ? ? var ? z?
? ? ? alert(window.z);//結果為1.用到對象的方法去考慮!?
? ? ? z=2; ? ? //z為函數里,用var聲明的局部變量?
? ? ? alert(z);//結果為2?
}?
cc();?
alert(z)//結果為1?
</script>
過程體(包括方法function,對象Object o ={})外的所有變量不管你有沒有加var保留字,他都是全局變量
而在過程體內(包括方法function(){},對象Object o={})內的對象加var保留字則為局部變量,而不加var保留字即為全局變量
js的全局作用域應該是在看著辦的的范圍內,不一定是同一個頁面,比如說在一個iframe里就不可以調用嵌入他的頁面的JS
===========情況1=================================================?
<script ? language= "javascript ">?
? ? ? ? ? ? ? z=1;//全局變量?
? ? ? ? ? ? ? ? function ? aa()?
{?
? ? ? alert(z);?
? ? ? z=2; ? ? //z為函數里,沒有用var聲明的全局變量?
? ? ? alert(z);?
}?
bb();?
alert(z)//結果為2?
</script>?
===========================================?
==================情況2====================?
<script ? language= "javascript ">?
? ? ? ? z=1;//全局變量?
function ? bb()?
{?
? ? ? var ? z?
? ? ? alert(z);//結果為undefined?
? ? ? z=2; ? ? //z為函數里,用var聲明的局部變量?
? ? ? alert(z);//結果為2?
}?
bb();?
alert(z)//結果為1?
</script>?
================情況3====================?
<script ? language= "javascript ">?
? ? ? ? z=1;//全局變量?
function ? cc()?
{?
? ? ? var ? z?
? ? ? alert(window.z);//結果為1.用到對象的方法去考慮!?
? ? ? z=2; ? ? //z為函數里,用var聲明的局部變量?
? ? ? alert(z);//結果為2?
}?
cc();?
alert(z)//結果為1?
</script>
總結
以上是生活随笔為你收集整理的js变量前有 var 与没有的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS入门之arguments对象
- 下一篇: JS 可变参数