DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> Javascript全局變量var與不var的區別深入解析
Javascript全局變量var與不var的區別深入解析
編輯:JavaScript基礎知識     

相信你對全局變量一定不陌生,在函數作用域裡用a=1這種形式定義的變量會是一個全局變量,在全局作用域裡,用下面3種形式都可以創建對全局可見的命名:
復制代碼 代碼如下:
<script>
var a = 1;
b = 2;
window.c = 3;
</script>

對於b=2這種方式, 它其實和c是一樣的,在執行這個賦值語句的時候,會沿著作用域鏈尋找名字叫做b的變量,一直找到作用域鏈的頂端還沒有找到,於是給window添加一個屬性b然後賦值。

var與不var有兩個區別:

1 var的全局變量不能被刪除,因為delete智能刪除對象的可刪除的屬性,而通過var 定義的全局屬性會被標明不可刪除。需要說明的是,delete不成功並不會拋錯,delete的返回值是true|false。

2 var定義的全局變量會被提升,而不用var定義的全局變量不會被提升。可以看下面程序的執行結果:
復制代碼 代碼如下:
<script>
alert(a);
var a=1;
</script>

復制代碼 代碼如下:
<script>
alert(a);//error, a undefined
a=1;
</script>

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved