JavaScript中var的重要性實(shí)例分析
本文實(shí)例講述了JavaScript中var的重要性。分享給大家供大家參考,具體如下:
在JS中申明變量是使用var來(lái)進(jìn)行申明,但是有的時(shí)候我們沒有使用var也可以。這是為什么呢?我來(lái)給大家細(xì)細(xì)的說(shuō)來(lái)。
var的本質(zhì)
var的本質(zhì)就是來(lái)申明變量的
<script> var str = 'China';//申明并進(jìn)行賦值 </script>
變量的作用范圍
先以一個(gè)例子來(lái)說(shuō)明引出問(wèn)題,在這個(gè)例子中,在函數(shù)t中沒有使用var關(guān)鍵字來(lái)申明變量,系統(tǒng)認(rèn)為只是進(jìn)行賦值操作而已,而且這個(gè)賦值操作會(huì)影響到了window對(duì)象的str2屬性
<script> var str1 = 'China';//申明并賦值str1 var str2 = 'Japan';//申明并賦值str2 console.log(window.str1,window.str2);//輸出:China Japan function t(){ var str1 = 'local';//申明并賦值str1 str2 = 'global';//賦值操作,并不是申明變量,污染window對(duì)象的屬性 } t();//調(diào)用t函數(shù) console.log(window.str1,window.str2);//輸出:China global </script>
變量的作用域
全局作用域:在最外層定義的變量
局部作用域:在函數(shù)內(nèi)部定義的變量
JS作用域的特點(diǎn):首先在函數(shù)內(nèi)部查找變量,找不到則到外層函數(shù)查找,逐步找到最外層,即window對(duì)象,并操作window對(duì)象的屬性。
<script> var str = 'China'; function t1(){ var str = 'Japan'; function t2(){ var str = 'USA'; console.log(str); } t2(); } t1(); </script>
這個(gè)例子比較典型,可以來(lái)說(shuō)明JS變量的作用域切換問(wèn)題,腳本首先在最外層定義了str屬性,當(dāng)調(diào)用t1函數(shù)時(shí),在t1函數(shù)中也定義了str變量和t2方法,當(dāng)執(zhí)行t2方法時(shí),此時(shí)又定義了str變量,所以此時(shí)打印USA。
當(dāng)屏蔽t2函數(shù)中的定義操作,此時(shí)在t2函數(shù)作用域中沒有str變量,則從它的上一級(jí)作用域中查找,又因?yàn)閠1函數(shù)中定義了str變量,此時(shí)打印Japan。
當(dāng)屏蔽t1和t2函數(shù)中的定義操作,則一層一層地往外找,此時(shí)找到最外層,此時(shí)打印China。
當(dāng)最外層也沒有定義該變量,在運(yùn)行該JS過(guò)程中就找不到該變量,此時(shí)會(huì)出錯(cuò),在瀏覽器的控制臺(tái)可以找到錯(cuò)誤。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript常用函數(shù)技巧匯總》、《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- 在Javascript中 聲明時(shí)用"var"與不用"var"的區(qū)別
- javascript定義變量時(shí)加var與不加var的區(qū)別
- JavaScript中var關(guān)鍵字的使用詳解
- js for循環(huán),為什么一定要加var定義i變量
- JavaScript中const、var和let區(qū)別淺析
- 淺析JavaScript中var that=this
- JScript中的''var''定義變量的作用域
- Javascript var變量隱式聲明方法
- 關(guān)于JavaScript中var聲明變量作用域的推斷
- javascript定義變量時(shí)有var和沒有var的區(qū)別探討
- JavaScript ES6中const、let與var的對(duì)比詳解
相關(guān)文章
Javascript本地存儲(chǔ)localStorage看這一篇就夠了
這篇文章主要給大家介紹了關(guān)于Javascript本地存儲(chǔ)localStorage的相關(guān)資料,localStorage會(huì)可以將第一次請(qǐng)求的數(shù)據(jù)直接存儲(chǔ)到本地,這個(gè)相當(dāng)于一個(gè)5M大小的針對(duì)于前端頁(yè)面的數(shù)據(jù)庫(kù),需要的朋友可以參考下2024-07-07js中apply和Math.max()函數(shù)的問(wèn)題及區(qū)別介紹
這篇文章主要介紹了js中apply和Math.max()函數(shù)的問(wèn)題,本文給大家?guī)?lái)兩種答案,每一種答案給大家介紹的非常詳細(xì),在文章底部給大家提到了js中Math.max.apply和Math.max的區(qū)別,感興趣的朋友一起看看吧2018-03-03兼容FireFox 用javascript寫的一個(gè)畫圖函數(shù)
兼容FireFox 用javascript寫的一個(gè)畫圖函數(shù)...2007-08-08Grid得到選擇行數(shù)據(jù)的方法總結(jié)
Grid得到選擇行數(shù)據(jù)的方法總結(jié),需要的朋友可以參考下。2011-01-01Knockout結(jié)合Bootstrap創(chuàng)建動(dòng)態(tài)UI實(shí)現(xiàn)產(chǎn)品列表管理
這篇文章主要為大家詳細(xì)介紹了Knockout結(jié)合Bootstrap創(chuàng)建動(dòng)態(tài)UI實(shí)現(xiàn)產(chǎn)品列表管理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09使用Javascript監(jiān)控前端相關(guān)數(shù)據(jù)的代碼
本篇文章詳細(xì)的介紹了使用Javascript監(jiān)控前端相關(guān)數(shù)據(jù),可以及時(shí)的監(jiān)控前端的錯(cuò)誤,加載時(shí)間等,有需要的可以了解一下。2016-10-10js監(jiān)聽鍵盤事件的方法_原生和jquery的區(qū)別詳解
下面小編就為大家?guī)?lái)一篇js監(jiān)聽鍵盤事件的方法_原生和jquery的區(qū)別詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10