變數
- 1.?變數
- 1.1) 什么是變數?
- 1.2) 變數命名規則
- 2.?var 關鍵字
- 2.1) var 宣告作用域
- 2.2) var 宣告提升
- 3.?let 關鍵字
- 4.?const 關鍵字
- 5.?宣告風格及最佳實踐
1.?變數
1.1) 什么是變數?
在 JavaScript 中,變數可以用于保存任何型別的資料,
每個變數只不過是一個用于保存任意值的命名占位符,
有 3 個關鍵字可以宣告變數:var、const 和 let,
其中,var 在 ECMAScript 的所有版本中都可以使用,而 const 和 let 只能在 ECMAScript 6 及更晚的版本中使用,
1.2) 變數命名規則
- 第一個字符必須是字母、下劃線( _ )或美元符號( $ ),剩下的其他字符可以是字母、下劃線、美元符號或數字,
- 不能是關鍵字,保留字(例如 var, true, null),
- 最好可以遵循駝峰命名法,首字母小寫,后面單詞的首字母大寫(例如 myName),
2.?var 關鍵字
var message;
// 定義多個變數,可以在一條陳述句中用逗號分隔每個變數,
var one = 1, two = 2, three = 3;
// 在一個函式作用域中,可以重復宣告,
function foo() {
var age;
var age;
}
定義一個 message 變數,可以用它保存任何型別的值,(不初始化情況下,資料型別為 undefined),
2.1) var 宣告作用域
使用 var 運算子定義的變數會成為包含它的函式的區域變數,
2.2) var 宣告提升
使用 var 時,下面代碼不會報錯,
function foo() {
console.log(age);
var age = 26;
}
foo(); // undefined
因為使用 var 宣告的變數會自動提升到函式作用域頂部(不過此時 foo()中的 age 資料型別為 undefined),
3.?let 關鍵字
let 跟 var 的作用差不多,但有著非常重要的區別,
區別:
- let 宣告的范圍是塊作用域,而 var 宣告的范圍是函式作用域,
- let 宣告的變數不會在作用域中被提升,
- 使用 let 在全域作用域中宣告的變數不會成為 window 物件的屬性(var 宣告的變數則會),
let 不允許變數在同一個塊作用域中重復宣告,
(嵌套使用相同的識別符號不會報錯)
function foo() {
let age;
let age; // SyntaxError; age 已經宣告過了,會報錯,
}
// 嵌套使用
let age = 30;
console.log(age); // 30
if (true) {
let age = 26;
console.log(age); // 26
}
4.?const 關鍵字
const 的行為與 let 基本相同.
唯一一個重要的區別是用它宣告變數時必須同時初始化變數,且嘗試修改 const 宣告的變數會導致運行時錯誤,
- const 也不允許重復宣告
- const 宣告的作用域也是塊
const 宣告的限制只適用于它指向的變數的參考,
如果 const 變數參考的是一個物件,那么修改這個物件內部的屬性并不違反 const 的限制,即
const person = {};
person.name = 'Matt'; // 這是可以的
5.?宣告風格及最佳實踐
- 不使用 var
有了 let 和 const,大多數開發者會發現自己不再需要 var 了,限制自己只使用 let 和 const 有助于提升代碼質量,因為變數有了明確的作用域、宣告位置,以及不變的值,
- const 優先,let 次之
使用 const 宣告可以讓瀏覽器運行時強制保持變數不變,也可以讓靜態代碼分析工具提前發現不合法的賦值操作,
因此,很多開發者認為應該優先使用 const 來宣告變數,只在提前知道未來會有修改時,再使用 let,這樣可以讓開發者更有信心地推斷某些變數的值永遠不會變,同時也能迅速發現因意外賦值導致的非預期行為,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/297853.html
標籤:其他
上一篇:常用的git分支管理指令
