中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在JavaScript中var的缺點有哪些

發布時間:2021-06-30 09:18:57 來源:億速云 閱讀:449 作者:小新 欄目:web開發

這篇文章主要介紹在JavaScript中var的缺點有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

JavaScript中var存在的缺陷:1、var定義的變量沒有塊作用域;2、var定義的全局變量會自動添加全局window對象的屬性;3、var定義的變量會提前裝載。

本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

使用var定義變量可能存在如下問題:

  • var定義的變量沒有塊作用域。

  • var定義的全局變量會自動添加全局window對象的屬性。

  • var定義的變量會提前裝載。

那么如何彌補var的缺陷?可以使用let關鍵字,let關鍵字的出現正好解決了上述問題

1.let定義的變量有塊作用域:

我們先來看代碼:

<script type="text/javascript">
	for(let i = 0;i < 10; i++){
		console.log(i);
	}
	console.log("循環體之外:" + i);//報錯:letScope.html:5 Uncaught ReferenceError: i is not defined
</script>

運行結果:
在JavaScript中var的缺點有哪些
上面的程序在for循環中使用了let來定義循環計數器,這樣該循環計數器i將只在for循環中有效,因此程序在循環體之外訪問i變量就會報錯。如果用var來定義i變量,則會將作用域擴散到循環體外。

2.let定義的全局變量不會自動添加到window對象的屬性:

我們再看一個示例:

<script type="text/javascript">
	let name = '巴啦啦';
		console.log(name); //輸出巴啦啦
		console.log(window.name); //window.name不存在
</script>

運行結果:

在JavaScript中var的缺點有哪些
上面代碼使用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>

運行結果:

在JavaScript中var的缺點有哪些

使用let定義的變量要等到程序流執行到定義變量的代碼行時才會轉載。

上面程序先定義了一個全局變量name,接下來程序再func()函數中使用let定義了同名的name變量,此時局部變量name會覆蓋全局的name變量。但由于使用let定義的變量不會提前裝載,因此func()函數在使用let定義局部變量name之前訪問name變量會導致錯誤-----如果將func()函數中定義name變量的關鍵字改為var,則會有不同的效果。

修改后運行結果如下:

在JavaScript中var的缺點有哪些

以上是“在JavaScript中var的缺點有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗定市| 崇明县| 托里县| 开封县| 酉阳| 龙江县| 溧水县| 乌兰浩特市| 鄢陵县| 东乌珠穆沁旗| 太保市| 富阳市| 乃东县| 古丈县| 化德县| 文山县| 鄂温| 门头沟区| 合山市| 涡阳县| 万盛区| 汾西县| 奉化市| 甘肃省| 阳谷县| 吉安县| 黑水县| 万盛区| 安岳县| 安吉县| 章丘市| 云龙县| 千阳县| 合阳县| 贡觉县| 梁山县| 肥西县| 车险| 合山市| 青田县| 康平县|