1. 程式人生 > >freeCodeCamp學習記錄【二】

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 是什麼了)。