變量、數據類型
1 什麼是變量,爲什麼要使用變量
變量是儲存數據的容器。每一個變量代表一條數據。Var聲明變量,=號賦值變量
程序是用來處理數據的,數據儲存在內存當中,每一個數據都有其對應的內存地址,我們不可能記住每一個內存地址,而聲明變量就相當於給內存地址起了一個名字,我們就可以通過使用變量來使用內存中的數據
1.1 變量的聲明
使用Var聲明
例:var foo = 'bar';
1.2 變量命名規則
變量名必須使用英文字母、數字、下劃線(_)組成
變量名不能使用JavaScript關鍵詞與JavaScript保留字
2 數據類型
2.1 原始類型
數字number、字符串string、布爾boolean、空null、未定義undefined、symbol
可以使用typeof來檢測數據類型
2.2 引用類型
對象Object、數組Array、函數function
可以用instanceof檢測數據類型
2.3 原始類型和引用類型的區別
原始類型:
- 佔用空間固定
- 保存與複製的是值本身
- 使用typeof檢測數據的類型
- 基本類型數據是值類型
引用類型:
- 佔用空間不固定
- 保存與複製的是指向對象的一個指針
- 使用instanceof檢測數據類型
- 使用new()方法構造出的對象是指引用型
值是undefined的幾種情況
- 變量聲明瞭但是沒賦值 解析器會給一個默認值 就是undefined
- 數組中 某一項沒有值 值是undefined
- 形參接收不到值 接收到的就是undefined
- 函數沒有返回值 相當於返回了undefined
- 對象沒有這個屬性 非要獲取這個屬性的值 這個屬性的值也是undefined
2.4 類型檢測
使用typeof檢測輸出:
string、number、boolean、object、function、undefined
使用instanceof檢測輸出:
false、true
2.5 類型轉換
2.5.1 強制轉換:
- 全局方法String()可以將數字轉換爲字符串。可用於任何類型數字、字母、變量、表達式。可以吧布爾值轉換爲字符串
- Number方法 to String() 同上
- toFixed(位數) 把數字轉換爲字符串,結果的小數點後有指定位數的數字
- Number() 可將值轉換爲數字
- parseInt()把值轉換爲正整數數字
- parseFloat()解析一個字符串,並返回一個浮點數。
注意:4、5、6如果首字符是非空非數字字符返回NaN
2.5.2 自動轉換(隱式轉換):
當 JavaScript 嘗試操作一個 “錯誤” 的數據類型時,會自動轉換爲 “正確” 的數據類型。
當你嘗試輸出一個對象或一個變量時 JavaScript 會自動調用變量的 toString() 方法:
2.5.3 強制轉換和隱式轉換的區別
強制轉換是通過函數轉換;
不同類型的變量比較要先轉類型,叫類型轉換,又叫隱式轉換,通常發生在運算符上