JavaScript 同時宣告多個變數並賦值
JavaScript變數宣告與賦值是極為簡單與基礎的操作。
也許學習程式設計第一節課就是會涉及到變數的宣告與賦值。
裡面涉及到一些平時不會引起注意,但是又比較重要的概念。
本文首先介紹如何同時宣告多個變數並賦值,然後引出一些問題進行分析。
首先看如下程式碼例項:
[JavaScript] 純文字檢視 複製程式碼let webName="螞蟻部落"; let address="青島市南區";
上面分別宣告兩個變數並賦值,下面將其改造成同時宣告並賦值:
[JavaScript] 純文字檢視 複製程式碼執行程式碼let webName="螞蟻部落",address="青島市南區"; console.log(webName); console.log(address);
程式碼執行效果截圖如下:
宣告方式很簡單,變數之間用逗號分隔即可,上面同時宣告兩個變數,當然還可以更多。
上面都很好理解,需要注意的地方來了,看如下程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼(function(){ var a=b=5; })(); console.log(b);
請問上面用var宣告瞭幾個變數,可能不少初學者會回答宣告兩個變數a與b。
事實是錯誤的,程式碼分析如下:
(1).上述程式碼使用var只宣告瞭一個變數a。
(2).b並沒有使用var宣告,如果它也是用var宣告,那麼就無法列印出b的值,然而列印結果如下:
(3).可能很多朋友會說,不使用var宣告的是全域性變數,所以上面也算是同時宣告並賦值了兩個變數,其實這種說法從來都是錯誤的,只有利用var宣告的才是變數(暫且不考慮let),不使用var的b其實是全域性物件的一個屬性,也就是說為全域性物件新增了一個自定義屬性b並賦值,用如下程式碼可以證明它們之間的不同:
事實是錯誤的,程式碼分析如下:
(1).上述程式碼使用var只宣告瞭一個變數a。
(2).b並沒有使用var宣告,如果它也是用var宣告,那麼就無法列印出b的值,然而列印結果如下:
(3).可能很多朋友會說,不使用var宣告的是全域性變數,所以上面也算是同時宣告並賦值了兩個變數,其實這種說法從來都是錯誤的,只有利用var宣告的才是變數(暫且不考慮let),不使用var的b其實是全域性物件的一個屬性,也就是說為全域性物件新增了一個自定義屬性b並賦值,用如下程式碼可以證明它們之間的不同:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var webName="螞蟻部落"; address="青島南區"; delete webName; delete address; console.log(webName); console.log(address);
程式碼執行效果截圖如下:
可以看到使用var宣告的變數沒有被刪除,不使用var的被刪除,所以程式碼會報錯。
由此可見,兩者是不同的,var宣告的是一個真正的變數,address只是window的一個自定義屬性。
相關閱讀:
(1).delete參閱JavaScript delete用法一章節。
(2).帶var與不帶var的區別參閱變數宣告帶var與不帶var的區別一章節。
(3).let參閱JavaScript let 命令一章節。
相關文章
- vue 變數賦值同時改變的問題Vue變數賦值
- go語言變數的宣告與賦值Go變數賦值
- JavaScript 宣告變數JavaScript變數
- 數字索引賦值給多個變數簡單表示式索引賦值變數
- Kotlin 變數詳解:宣告、賦值與最佳實踐指南Kotlin變數賦值
- golang 快速入門 [8.1]-變數型別、宣告賦值、作用域宣告週期與變數記憶體分配Golang變數型別賦值記憶體
- Go:變數宣告的多種方法與預設值Go變數
- 在程式中定義多個同值不同名的變數變數
- 列表切片賦值給另一個變數賦值變數
- Javascript 解構賦值,將屬性/值從物件/陣列中取出,賦值給其他變數JavaScript賦值物件陣列變數
- 變數的賦值 指標間接賦值變數賦值指標
- JavaScript 變數與函式宣告前置JavaScript變數函式
- php之普通變數賦值、物件賦值、引用賦值的區別PHP變數賦值物件
- shell變數命名與賦值變數賦值
- 變數的解構賦值變數賦值
- shell 變數賦值問題變數賦值
- ES6 變數宣告與賦值:值傳遞、淺拷貝與深拷貝詳解變數賦值
- javascript變數的宣告以及命名規則JavaScript變數
- 物件屬性值賦給變數物件變數
- JavaScript - 變數、值、型別JavaScript變數型別
- Excel 多個變數替換 實際值Excel變數
- JavaScript函式引數解構賦值JavaScript函式賦值
- 不使用臨時變數交換兩個變數的值變數
- c#小灶——常量、變數和賦值C#變數賦值
- AC-DMIS 5.3 V變數賦值變數賦值
- JAVA之反射學習3-反射獲取成員變數並賦值Java反射變數賦值
- MySQL中變數的定義和變數的賦值使用MySql變數賦值
- TypeScript 變數宣告TypeScript變數
- JavaScript 連等賦值JavaScript賦值
- php redis 集合sadd同時寫入多個鍵值的方法PHPRedis
- python 使用 loguru 輸出異常日誌同時列印變數值Python變數
- JS中的變數賦值深入理解JS變數賦值
- 自己對Java中if變數賦值的理解Java變數賦值
- ES6:變數的結構賦值變數賦值
- JavaScript變數宣告帶var與不帶var區別JavaScript變數
- 如何不使用臨時變數,交換兩個變數的值。變數
- Python 中變數賦值傳遞時的引用和複製介紹Python變數賦值
- python 同時迭代多個序列Python