JavaScript中var關鍵字的使用詳解

做用
聲明做用;如聲明個變量。
語法  javascript

?java

1
var c = 1;

省略var
在javascript中,若省略var關鍵字而直接賦值,那麼這個變量爲全局變量,哪怕是在function裏定義的。
ide

?函數

1
2
3
4
5
6
7
8
<script type= "text/javascript" >
   function Define() {
     a = 2;
   }
   function Hello() {
     alert(a);
   }
</script>


如代碼所示,運行函數Define()後,變量a聲明爲全局變量。在Hello()函數中能夠引用變量a。spa

更具體的示例
咱們都知道 JavaScript 中的var關鍵字是用來申明變量的,可是若是不用這個關鍵字而直接寫出變量名,而後賦值給它,JavaScript 也並不會報錯,它會自動申明這個變量。難道說 JavaScript 中的var是個多餘的東西嗎?顯然不是!.net

請看下面這段代碼:code

?orm

1
2
3
4
5
6
7
8
str1 = 'Hello JavaScript!' ;
function fun1() {
  str1 = 'Hello Java!' ;
}
fun1();
alert(str1);
 
// 彈出 Hello Java!

能夠看到,在函數 fun1 被調用後,str1 的值在函數內被改變了。htm

再將上面的代碼稍做修改:ip

?

1
2
3
4
5
6
7
8
str1 = 'Hello JavaScript!' ;
function fun1() {
  var str1 = 'Hello Java!' ;
}
fun1();
alert(str1);
 
// 彈出 Hello JavaScript!

看到沒有,str1 的值並無被函數 fun1 改變。

顯然,var關鍵字影響了變量的做用域。

函數外部:變量無論是否用了var申明,都是全局變量。

函數內部:變量若是沒有使用var關鍵字申明,那它就是全局變量,只有用var關鍵字申明瞭,纔是局部變量。
結論

爲了不潛在的風險,務必使用var關鍵字來申明變量。

相關文章
相關標籤/搜索