freeCodeCamp學習記錄【二】
寫在前面:原來堅持一件事真的不是十分簡單的事,即使是小到微不足道的事。
今天與非要和大家分享的是這一星期對 javaScript 的理解。
JavaScript 提供七種不同的 data types (資料型別),它們是
undefined(未定義)
null(空)
boolean(布林型)
string(字串)
symbol(符號)
number(數字)
object(物件)
關於陣列
關於陣列,我想記錄的是兩個點:
一是陣列用來儲存資料;
二是從數組裡讀取某個元素。
使用陣列,我們可以在一個地方儲存多個數據。
用[]
定義陣列,每個條目之間用逗號隔開,就像這樣:
var sandwich = ["peanut butter", "jelly", "bread"]
你也可以在陣列中包含其他陣列,就像這樣:
[["Bulls", 23], ["White Sox", 45]]
這被稱為一個多維陣列。
我們可以像操作字串一樣通過陣列索引[index]
來訪問陣列中的資料。
陣列索引的使用與字串索引一樣,不同的是,通過字串的索引得到的是一個字元,通過陣列索引得到的是一個條目。與字串類似,陣列也是 基於零 的索引,因此陣列的第一個元素的索引是 0。
.push()
函式:將資料追加到一個數組的末尾;
.pop()
函式:用來移出陣列中最後一個元素;
.shift()
.unshift()
函式:(移入)一個元素到陣列的頭部。
對於上面四個函式,有一個小練習:寫一個函式 queue ,用一個數組arr和一個數字item作為引數。數字item新增到陣列的結尾,然後移出陣列的第一個元素,最後佇列函式應該返回被刪除的元素。程式碼如下:
function queue(arr, item) {
arr.push(item);
item = arr.shift(arr);
return item;
}
// 初始化測試資料
var testArr = [5,6,7,8,9];
// 控制檯輸出
console.log("Before: " + JSON.stringify(testArr));
console.log(queue(testArr, 1)); // 修改這一行來測試你的程式碼
console.log("After: " + JSON.stringify(testArr));
通過這個小練習還可以更好的理解函式裡引數的作用。
物件
物件和陣列很相似,陣列是通過索引來訪問和修改資料,物件是通過屬性來訪問和修改資料的。
這是一個示例物件:
var cat = {
"name": "Whiskers",
"legs": 4,
"tails": 1,
"enemies": ["Water", "Dogs"]
};
物件適合用來儲存結構化資料,就和真實世界的物件一模一樣,比如一隻貓。
重點來了。有兩種方式訪問物件屬性,一個是點操作符(.)
,一個是中括號操作符([])
。
你會發現屬性有時候有加引號,有時候沒有,這是因為當我們通過變數名訪問屬性的時候,不需要給變數名包裹引號。因為實際上我們使用的是變數的值,而不是變數的名稱。
物件和字典一樣,可以用來儲存鍵/值對。如果你的資料跟物件一樣,你可以用物件來查詢你想要的值,而不是使用 switch 或 if/else 語句。當你知道你的輸入資料在某個範圍時,這種查詢方式極為有效。下面是一個查詢的例子:
與非在其中標註的就是最重要的一步,這樣才能得到相應的值,注意我們是要獲得phoneticLookup()
這個函式裡的物件儲存的資料。
同時,要注意的是,如果你需要通過變數來訪問物件的屬性值,請用中括號操作符,點操作符不支援變數。(與非就在這裡出錯了,看到這句話的時候才改正掉。)
那麼,這周的內容就是這樣了,預告下週是關於 JSON 等的內容(本小白不禁大呼一口氣終於看到 JSON 是什麼了)。