這是我用於複習我一年前學習的JavaScript的筆記,由於一年過去了,我大概已經4~5個月沒有寫過什麼代碼,所以需要整理自己的知識體系,如果文章出錯,也希望大家評論給我改錯 JavaScript的類型 JS中的類型有以下幾種: Number(數字類型) BigInt (大數類型) String(字 ...
這是我用於複習我一年前學習的JavaScript的筆記,由於一年過去了,我大概已經4~5個月沒有寫過什麼代碼,所以需要整理自己的知識體系,如果文章出錯,也希望大家評論給我改錯
JavaScript的類型
JS中的類型有以下幾種:
- Number(數字類型)
- BigInt (大數類型)
- String(字元串類型)
- Boolean (布爾類型)
- null (空值類型)
- undefined(未定義類型)
- Symbol (符號類型)
Number類型 與 BigInt 大數類型
JS中的數字並不是無限大的,當我們超過JS的範圍,就會顯示近似值
由於電腦底層保存的數據是通過二進位,所以JS在進行小數運算的時候,精確度也是存在一定的問題的,我們一般引入其它的東西幫助我們進行計算
Infinity是數字類型的一個字面量,表示特殊值無窮
NaN也是一個數字類型的字面量,表示非數字型
let a = 10;
a = 10.5;
a = 3.14;
console.log(a)
如果我們需要表示其它進位的數字的話,就按下麵的寫法
// 二進位
let a = 0b;
// 八進位
let b = 0o;
// 十六進位
let c = 0x;
BigInt大數
註意:
- 大數可以表示所有範圍的數值,前提是你的記憶體夠大
- 大整數只能和大整數的類型進行計算,不能和普通的數字類型進行計算
let a = 99999999999999999999999999999999999999n;
類型檢查
我們可以使用typeof
來檢查我們值的類型
註意:
- 在JS中只有值才有類型,變數是沒有類型的(因為JS是弱類型的語言)
- typeof 返回的是一個字元串
- 變數只是一個存儲值的盒子
let a = 10;
let b = 20n;
// result Number
console.log(typeof a);
// result bigInt
console.log(typeof b);
字元串(String)
在JS中我們使用 單引號 或 雙引號 來表示字元串
註意:
- 單引號和雙引號不能混用
- 普通字元串不能跨行,模板字元串可以
模板字元串
使用:
let a = `你好
呀!`;
// 模板字元串還可以嵌入變數
let name = '孫悟空';
let a = `你好${name}`;
布爾值(Boolean)
一般我們用作邏輯判斷
布爾值只有兩個 true 和 false
布爾值在底層本質上就是一個數字
let a = true;
let b = false;
空值(null)
空值用來表示空對象
空值只有一個null
註意:
- 使用typeof檢查空值會顯示object(使用 typeof 無法檢查空值)
未定義(Undefined)
當聲明變數未賦值的時候,它的值就是Undefined
為定義只有一個值undefined
符號(Symbol)
用於創建一個唯一的標識
使用 typeof 檢查的時會返回Symbol
let c = Symbol()
console.log(typeof c)
類型轉換
將一種數據類型轉換為另外一種數據類型,我們稱之為類型轉換
註意:
由於數據的值的類型不可變,所以我們的類型轉換其實是根據原來的值,在記憶體開闢一個新的空間存儲轉換完畢之後的值
轉換字元串
- 方法一:調用toString()方法
註意:undefined 和 null 沒有 toString方法,所以不能調用這個方法
let a = 10;
// 調用 a 的toString方法
a = a.toString();
console.log(typeof a,a);
- 方法二:調用String()函數
String()函數可以轉換 null 和 undefined
String()函數的原理
:String()函數,本質上是對於可以調用toString()函數的對象,調用它們的toString(),而對於不能調用toString()的對象如 null 和 undefined 的它們會將其轉換為 "null" 和 "undefined"
let a = 10;
// 調用String()函數
a = String(a);
console.log(typeof a,a);
- 方法三:讓數據加上一個字元串(隱式類型轉換)
其內部原理還是調用String()函數
let b = 123 + '';
轉換為數字
註意:
- 字元串:如果字元串是一個合法的數字,那麼就正常轉換,但是如果是不合法的數字,就會轉換為NaN
- 如果字元串是空串或空格就會轉換為0
- 布爾值:true轉換為1,false轉換為0
- undefined:轉換為NaN
- null:轉換為0
- 方法一:使用Number()函數(適用於任何類型)
let a = '123';
console.log(typeof a);
a = Number(a);
console.log(typeof a);
- 方法二:parseInt() 和 parseFloat() 將一個字元串轉換為浮點數
2.1. paserInt解析時,會從左往右解析字元串,直到讀取到字元串所有的有效整數
2.2. 我們也可以使用 parseInt() 進行取整
let b = '1987px';
b = parseInt(b);
console.log(typeof b,b)
- 方法三:通過在非數值前面加一個
+
號,其本質還是調用Number()函數
let a = '132';
a = +a;
布爾值
方法:使用Boolean()函數將其它類型轉換為布爾值
轉換:
- 數字:處理NaN、0是false,其餘都是true
- 字元串:除了空串是false,其餘都是true
- null 和 undefined 轉換都是false
- 對象都會轉換為 true
- 使用!,對變數進行隱式轉換