作用
聲明作用;如宣告個變數。
文法
var c = 1;
省略var
在javascript中,若省略var關鍵字而直接賦值,那麼這個變數就是全域變量,哪怕是在function裡定義的。
<script type="text/javascript"> function Define() { a = 2; } function Hello() { alert(a); } </script>
如程式碼所示,運行函數Define()後,變數a宣告為全域變數。在Hello()函數中可以引用變數a。
更具體的範例
我們都知道JavaScript 中的var關鍵字是用來申明變數的,但是如果不用這個關鍵字而直接寫出變數名,然後賦值給它,JavaScript 也並不會報錯,它會自動申明這個變數。難道說 JavaScript 中的var是個多餘的東西嗎?顯然不是!
請看下面這段程式碼:
str1 = 'Hello JavaScript!'; function fun1() { str1 = 'Hello Java!'; } fun1(); alert(str1); // 弹出 Hello Java!
可以看到,在函數 fun1 被呼叫後,str1 的值在函數內被改變了。
再將上面的程式碼稍作修改:
str1 = 'Hello JavaScript!'; function fun1() { var str1 = 'Hello Java!'; } fun1(); alert(str1); // 弹出 Hello JavaScript!
看到沒有,str1 的值並沒有被函數 fun1 改變。
顯然,var關鍵字影響了變數的作用域。
函數外部:變數不管是否用了var申明,都是全域變數。
函數內部:變數如果沒有使用var關鍵字申明,那它就是全域變量,只有用var關鍵字申明了,才是局部變數。
結論
為了避免潛在的風險,請務必使用var關鍵字來申明變數。