亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

在Javascript中 聲明時用"var"與不用"var"的區(qū)別

 更新時間:2013年04月15日 09:05:19   作者:  
Javascript聲明變量的時候,雖然用var關(guān)鍵字聲明和不用關(guān)鍵字聲明,很多時候運(yùn)行并沒有問題,但是這兩種方式還是有區(qū)別的

Javascript聲明變量的時候,雖然用var關(guān)鍵字聲明和不用關(guān)鍵字聲明,很多時候運(yùn)行并沒有問題,但是這兩種方式還是有區(qū)別的。可以正常運(yùn)行的代碼并不代表是合適的代碼。

var num = 1;

是在當(dāng)前域中聲明變量. 如果在方法中聲明,則為局部變量(local variable);如果是在全局域中聲明,則為全局變量。

而 num = 1;

事實上是對屬性賦值操作。首先,它會嘗試在當(dāng)前作用域鏈(如在方法中聲明,則當(dāng)前作用域鏈代表全局作用域和方法局部作用域etc。。。)中解析 num; 如果在任何當(dāng)前作用域鏈中找到num,則會執(zhí)行對num屬性賦值; 如果沒有找到num,它才會在全局對象(即當(dāng)前作用域鏈的最頂層對象,如window對象)中創(chuàng)造num屬性并賦值。

注意!它并不是聲明了一個全局變量,而是創(chuàng)建了一個全局對象的屬性。

即便如此,可能你還是很難明白“變量聲明”跟“創(chuàng)建對象屬性”在這里的區(qū)別。事實上,Javascript的變量聲明、創(chuàng)建屬性以及每個Javascript中的每個屬性都有一定的標(biāo)志說明它們的屬性----如只讀(ReadOnly)不可枚舉(DontEnum)不可刪除(DontDelete)等等。

由于變量聲明自帶不可刪除屬性,比較var num = 1 跟 num = 1,前者是變量聲明,帶不可刪除屬性,因此無法被刪除;后者為全局變量的一個屬性,因此可以從全局變量中刪除。

具體見以下代碼:

復(fù)制代碼 代碼如下:

// num1為全局變量,num2為window的一個屬性

                     var num1 = 1;

                     num2 = 2;

                     // delete num1;  無法刪除

                     // delete num2;  刪除

                     function model(){

                            var num1 = 1; // 本地變量

                            num2 = 2;     // window的屬性

                            // 匿名函數(shù)

                            (function(){

                                   var num = 1; // 本地變量

                                   num1 = 2; // 繼承作用域(閉包)

                                   num3 = 3; // window的屬性

                            }())

                     }

PS. 在ECMAScript5標(biāo)準(zhǔn)中,有一種“嚴(yán)格模式”(Strict Mode)。在嚴(yán)格模式中,為未聲明的標(biāo)識符賦值將會拋引用錯誤,因此可以防止意外的全局變量屬性的創(chuàng)造。目前一些瀏覽器的新版本已經(jīng)支持。

相關(guān)文章

  • JavaScript 中的無窮數(shù)(Infinity)詳解

    JavaScript 中的無窮數(shù)(Infinity)詳解

    這篇文章主要介紹了JavaScript 中的無窮數(shù)(Infinity)的相關(guān)資料,非常的細(xì)致全面,有需要的小伙伴可以參考下
    2020-02-02
  • JS創(chuàng)建事件的三種方法(實例代碼)

    JS創(chuàng)建事件的三種方法(實例代碼)

    下面小編就為大家?guī)硪黄狫S創(chuàng)建事件的三種方法(實例代碼)。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • 編寫Js代碼要注意的幾條規(guī)則

    編寫Js代碼要注意的幾條規(guī)則

    大家在編寫js代碼的時候需要注意的一些地方,按照下面的方法,大家就可以盡量的讓你的代碼,更優(yōu)化。
    2010-09-09
  • 瀏覽器中url存儲的JavaScript實現(xiàn)

    瀏覽器中url存儲的JavaScript實現(xiàn)

    這篇文章主要介紹了瀏覽器中url存儲的JavaScript實現(xiàn),并且簡單講述了輸入url地址后提示過去輸入歷史記錄的原理,需要的朋友可以參考下
    2015-07-07
  • javascript中clone對象詳解

    javascript中clone對象詳解

    這篇文章主要介紹了javascript中clone對象的方法,需要的朋友可以參考下
    2014-12-12
  • Javascript的迭代器和迭代接口詳解

    Javascript的迭代器和迭代接口詳解

    這篇文章主要為大家詳細(xì)介紹了Javascript的迭代器和迭代接口,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 詳解JS-- 浮點數(shù)運(yùn)算處理

    詳解JS-- 浮點數(shù)運(yùn)算處理

    本篇文章主要介紹了JS--浮點數(shù)運(yùn)算處理,現(xiàn)在分享給大家,也給大家做個參考。感興趣的小伙伴們可以參考一下。
    2016-11-11
  • JavaScript常用全局屬性與方法記錄積累

    JavaScript常用全局屬性與方法記錄積累

    在學(xué)習(xí)javascript的過程中記錄下常用的全局屬性與方法,就當(dāng)是知識的積累,以備日后使用,感興趣的朋友可以了解下哈
    2013-07-07
  • 原生javascript 學(xué)習(xí)之js變量全面了解

    原生javascript 學(xué)習(xí)之js變量全面了解

    下面小編就為大家?guī)硪黄鷍avascript 學(xué)習(xí)之js變量全面了解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • 講解JavaScript中for...in語句的使用方法

    講解JavaScript中for...in語句的使用方法

    這篇文章主要介紹了講解JavaScript中for...in語句的使用方法,是JS入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-06-06

最新評論