前端進階系列本着「好好幹前端」的心態,一步一個腳印認真練好前端的基本功,爲在前端的發展道路上作好鋪墊。前端
本週正式開始前端進階的第1期,本週的主題是理解JavaScript數據類型
。java
最新的 ECMAScript 標準定義了7種數據類型,主要分爲兩大類基本類型
和引用類型
。git
基本類型
有時也被稱爲值類型
或原始類型
。其中包括6種數據類型,分別是:字符串類型(String)
、數字類型(Number)
、布爾類型(Boolean)
、對空類型(Null)
、未定義類型(Undefined)
、符號類型(Symbol)
。程序員
字符串類型github
JavaScript的字符串類型用於表示文本數據。它是一組16位的無符號整數值的「元素」。在字符串中的每一個元素佔據了字符串的位置。第一個元素的索引爲0,下一個是索引1,依此類推。字符串的長度是它的元素的數量。算法
數字類型數組
根據 ECMAScript 標準,JavaScript 中只有一種數字類型:基於 IEEE 754 標準的雙精度 64 位二進制格式的值(-(263 -1) 到 263 -1)。它並無爲整數給出一種特定的類型。除了可以表示浮點數外,還有一些帶符號的值:+Infinity,-Infinity 和 NaN (非數值,Not-a-Number)。緩存
123; // 正整數
-123; // 負整數
520.1314; // 浮點數
0; // 零
Infinity; // 正無窮
-Infinity; // 負無窮
typeof Infinity; // number
複製代碼
布爾類型數據結構
布爾表示一個邏輯實體,能夠有兩個值:true 和 false。函數
2 > 1; // true
[] == []; // false
[] == ![]; // true 這是爲何?
null == undefined // true
'10' > '3'; // flase 這個啥?
typeof true; // boolean
複製代碼
Null 類型
Null 類型只有一個值: null。
null === null; // true
typeof null; // object 爲何不是 null呢?
複製代碼
Undefined 類型
一個沒有被賦值的變量會有個默認值 undefined。
let a; // 我申明我是一個變量 a
typeof a; // undefined 申明未賦值
undefined == undefined; // true
undefined == 0; // false
undefined == null; // true
undefined == ''; // false
複製代碼
符號類型
符號(Symbols)是ECMAScript 第6版新定義的。符號類型是惟一的而且是不可修改的, 而且也能夠用來做爲Object的key的值。
let obj = {};
let symbol1 = Symbol();
let symbol2 = Symbol();
typeof symbol1; // symbol
typeof symbol2; // symbol
symbol1 == symbol2; // false
obj.symbol1 = 'hello';
obj[symbol1] = 'world';
console.log(obj.symbol1 + ' ' + obj[symbol1]); // hello world
複製代碼
引用類型
主是指Object類型
。
Object 對象
在計算機科學中, 對象是指內存中的能夠被 標識符
引用的一塊區域。
let obj1 = {}; // 對象字面量
let obj2 = new Object(); // 實例化一個對象
typeof obj1; // object
typeof obj2; // object
const person = { author: {name: "布一", "wechat": "Hankewins"}, 1: "No.1" };
console.log(person.author.name); // 布一
console.log(person.author.wechat); // Hankewins
console.log(person[1]); // No.1
複製代碼
咱們都知道JavaScript中有兩大數據類型:基本類型
和引用類型
,其中基本類型
主要是把值存儲在棧內存
中,而引用類型
倒是把地址存儲在棧內存
中,把值存儲在堆內存
中,而後將棧內存
中存儲的地址指向堆內存
中存儲的值。
基本類型 | 數據結構 | 存儲位置 |
---|---|---|
基本類型 | 數字、字符串、布爾、Null、Undefined、Symbol | 棧 |
引用類型 | 數組、對象、函數 | 棧、堆 |
堆棧是兩種數據結構,是一種數據項按序排列的數據結構,只能在一端進行插入和刪除操做。堆爲隊列優先,先進先出(FIFO)。棧爲先進後出(FILO)。
本篇文章內容主要告訴咱們如下幾個基本知識點:
基本類型
和引用類型
。針對第3點咱們將在下一章節中重點講解。
更多精彩內容請關注個人github博客,若是你以爲還不錯請給個star,很是感謝。