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

JavaScript聲明變量時為什么要加var關(guān)鍵字

 更新時間:2014年09月29日 16:29:57   投稿:whsnow  
var用來聲明變量,但是這個語法并不嚴格要求,很多時修改,我們可以直接使用一個變量而不用var聲明它,不過還是建議大家加var

在JavaScript中,var用來聲明變量,但是這個語法并不嚴格要求,很多時修改,我們可以直接使用一個變量而不用var聲明它。

復制代碼 代碼如下:

var x = "XX";
y ="xxx";

諸如此類。這有一個問題,比如說在代碼中的某一行,我想使用的一個已聲明的變量x,結(jié)果由于打字或者拼寫錯誤,這個變量被寫成y了,結(jié)果相當于“隱式”聲明了一個變量y,在實際編程過程中,這種錯誤有時比較難以發(fā)現(xiàn)。
當你在當前上下文內(nèi)進行這種“隱式”聲明時,JavaScript引擎會先在當前上下文中尋找是否之前有聲明此變量,如果沒有,再到上一級的上下文中去尋找,如果一直未找到,會最后在window上聲明這個變量!
比如:

代碼如下:

window. y = "hello"; 
function func(){ 
y = "OH, NO!!!"; 
} 
func(); 
alert(window.y); //#=> display "OH, NO!!!" 

當上下文中的任意一層有這種“隱式”定義的變量時,那么該層的該變量會被修改,而不會在window上生成一個新的變量。(這種bug也挺討厭的,尤其是封裝的比較復雜的代碼)
比如:

代碼如下:

var x = "window.x"; 
function a() { 
var x = "a's x"; 
var b = function() { 
var c = function() { 
//no var! 
x = "c's x:"; 
}; 
alert("before c run,the b.x:" + x); 
c(); 
alert("after c run, the b.x:" + x); 
}; 
alert("a.x is:" + x); 
b(); 
alert("after b function runed, the a.x is:" + x); 
}; 
alert("before a run, window.x:" + x); 
a(); 
alert("after a run, window.x:" + x); 

這里面有以下幾層:window, func a, func b, func c一直作層級嵌套。window->a->b->c
window和a中,都有定義變量x,b中未定義該變量,在c中‘隱式'聲明了一個x,該x最終修改了a變量的值。
牢記,在JavaScript中,聲明變量,一定前面要加var .

相關(guān)文章

  • javascript循環(huán)鏈表之約瑟夫環(huán)的實現(xiàn)方法

    javascript循環(huán)鏈表之約瑟夫環(huán)的實現(xiàn)方法

    這是一道比較經(jīng)典的循環(huán)鏈表問題,在華為上機筆試中也出現(xiàn)過。 約瑟夫環(huán)是一個數(shù)學的應(yīng)用問題,下面這篇文章主要就給大家介紹了javascript循環(huán)鏈表之約瑟夫環(huán)的實現(xiàn)方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • 使用fileReader的一個坑及解決

    使用fileReader的一個坑及解決

    這篇文章主要介紹了使用fileReader的一個坑及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • bootstrapValidator 重新啟用提交按鈕的方法

    bootstrapValidator 重新啟用提交按鈕的方法

    bootstrapValidator 使用中,由于字段檢查等原因,致使提交按鈕失效。如何重新啟用提交按鈕呢?下面小編給大家介紹下bootstrapValidator 重新啟用提交按鈕的方法,需要的朋友可以參考下
    2017-02-02
  • 微信小程序van-field中的left-icon屬性自定義實現(xiàn)過程

    微信小程序van-field中的left-icon屬性自定義實現(xiàn)過程

    在小程序中,我們是用 Vant 組件庫時,常常會用到 van-field 輸入框控件,今天我將跟大家分享的是 van-field 輸入框控件中的 left-icon 屬性的自定義怎么實現(xiàn),感興趣的朋友一起看看吧
    2023-08-08
  • JS實現(xiàn)樣式清新的橫排下拉菜單效果

    JS實現(xiàn)樣式清新的橫排下拉菜單效果

    這篇文章主要介紹了JS實現(xiàn)樣式清新的橫排下拉菜單效果,通過簡單的元素遍歷控制頁面元素的動態(tài)切換效果,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • 如何理解JavaScript模塊化

    如何理解JavaScript模塊化

    模塊化簡單來說就是將一個完整的長篇代碼文件根據(jù)功能進行劃分成幾個文件,這些文件各自負責一個獨立的功能,各個文件組合起來實現(xiàn)一個完整的大功能,這就是模塊化,每個負責獨立功能的文件就是模塊。
    2021-05-05
  • Js實現(xiàn)復選框的全選、全不選反選功能代碼實例

    Js實現(xiàn)復選框的全選、全不選反選功能代碼實例

    這篇文章主要介紹了Js實現(xiàn)復選框的全選、全不選和反選,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • 被jQuery折騰得半死,揭秘為何jQuery為何在IE/Firefox下均無法使用

    被jQuery折騰得半死,揭秘為何jQuery為何在IE/Firefox下均無法使用

    某學員前日實施一個Web項目實施發(fā)生了悲劇,找到我求解決,把我也折騰個半死。
    2010-01-01
  • js實現(xiàn)收縮菜單效果實例代碼

    js實現(xiàn)收縮菜單效果實例代碼

    這篇文章介紹了js實現(xiàn)收縮菜單效果實例代碼,有需要的朋友可以參考一下
    2013-10-10
  • 一步步教你實現(xiàn)微信小程序自定義組件

    一步步教你實現(xiàn)微信小程序自定義組件

    之前做小程序開發(fā)的時候,對于開發(fā)來說比較頭疼的莫過于自定義組件了,下面這篇文章主要給大家介紹了關(guān)于微信小程序自定義組件的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03

最新評論