首頁 > web前端 > js教程 > 主體

Javascript全域變數var與不var的差異深入解析_基礎知識

WBOY
發布: 2016-05-16 17:10:19
原創
1165 人瀏覽過

相信你對全域變數一定不陌生,在函數作用域裡用a=1這種形式定義的變數會是一個全域變量,在全域作用域裡,用下面3種形式都可以創建對全域可見的命名:

複製程式碼 程式碼如下:

<script><BR>var a = 1;<BR>b = 2;<BR>window.c = 3;<BR></script>

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

var與不var有兩個差別:

1 var的全域變數不能被刪除,因為delete智慧型刪除物件的可刪除的屬性,而透過var 定義的全域屬性會被標示為不可刪除。需要說明的是,delete不成功並不會拋錯,delete的回傳值是true|false。

2 var定義的全域變數會被提升,而不用var定義的全域變數不會被提升。可以看下面程式的執行結果:

複製程式碼 程式碼如下:

<script><BR>alert(a);<BR>var a=1;<BR></script>

複製程式碼



複製程式碼

複製程式碼複製程式碼複製程式碼複製程式碼複製程式碼複製碼> 程式碼如下:<script><🎜>alert(a);//error, a undefined<🎜>a=1;<🎜></script>
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板