本文小編為大家詳細介紹“在JavaScript中var的缺點是什么”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“在JavaScript中var的缺點是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
創(chuàng)新互聯(lián)一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務為基礎,以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!為您提供成都網(wǎng)站設計、成都網(wǎng)站制作、成都網(wǎng)頁設計、小程序制作、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、app開發(fā)定制是成都本地專業(yè)的網(wǎng)站建設和網(wǎng)站設計公司,等你一起來見證!
JavaScript中var存在的缺陷:1、var定義的變量沒有塊作用域;2、var定義的全局變量會自動添加全局window對象的屬性;3、var定義的變量會提前裝載。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
使用var定義變量可能存在如下問題:
var定義的變量沒有塊作用域。
var定義的全局變量會自動添加全局window對象的屬性。
var定義的變量會提前裝載。
那么如何彌補var的缺陷?可以使用let關(guān)鍵字,let關(guān)鍵字的出現(xiàn)正好解決了上述問題
1.let定義的變量有塊作用域:
我們先來看代碼:
<script type="text/javascript">
for(let i = 0;i < 10; i++){
console.log(i);
}
console.log("循環(huán)體之外:" + i);//報錯:letScope.html:5 Uncaught ReferenceError: i is not defined
</script>運行結(jié)果:
上面的程序在for循環(huán)中使用了let來定義循環(huán)計數(shù)器,這樣該循環(huán)計數(shù)器i將只在for循環(huán)中有效,因此程序在循環(huán)體之外訪問i變量就會報錯。如果用var來定義i變量,則會將作用域擴散到循環(huán)體外。
2.let定義的全局變量不會自動添加到window對象的屬性:
我們再看一個示例:
<script type="text/javascript"> let name = '巴啦啦'; console.log(name); //輸出巴啦啦 console.log(window.name); //window.name不存在 </script>
上面代碼使用let定義一個全局變量name,但與使用var定義全局變量不同的是,使用let定義的全局變量不會變成window對象的屬性,所以運行上面程序訪問window.name時,看不到任何輸出。
3.let定義的變量不會提前裝載:
看如下示例:
<script type="text/javascript">
var name = '巴啦啦';
function func(){
console.log(name);
let name = 'fkit';
console.log(name);
}
func();
</script>運行結(jié)果:

使用let定義的變量要等到程序流執(zhí)行到定義變量的代碼行時才會轉(zhuǎn)載。
上面程序先定義了一個全局變量name,接下來程序再func()函數(shù)中使用let定義了同名的name變量,此時局部變量name會覆蓋全局的name變量。但由于使用let定義的變量不會提前裝載,因此func()函數(shù)在使用let定義局部變量name之前訪問name變量會導致錯誤-----如果將func()函數(shù)中定義name變量的關(guān)鍵字改為var,則會有不同的效果。
修改后運行結(jié)果如下:

讀到這里,這篇“在JavaScript中var的缺點是什么”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站名稱:在JavaScript中var的缺點是什么
文章鏈接:http://chinadenli.net/article16/ggpddg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、動態(tài)網(wǎng)站、微信公眾號、用戶體驗、品牌網(wǎng)站制作、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)