是誰說 JavaScript 簡單的?

這裏寫圖片描述

給一個數組排排序

var a = [1, 11, 10, 2, 8, 4];
var b = a.sort();
console.log(b); 

我們用sort()來給一個數組 [1, 11, 10, 2, 8, 4] 排序,按理說應該是[1,2,4,8,10,11],但是請看效果:

咦哈哈哈哈哈哈哈!!!!!

意外

下面我們來改一改:

  var a = [1, 11, 10, 2, 8, 4];
  var b = [1, 11, 10, 2, 8, 4].sort((a, b) => a - b);
  console.log(b);

這裏寫圖片描述

激動

new Date() 很棒棒

new Date() 可以接受:
· 沒有參數: 返回當前時間
· 一個參數 x: 返回1970年1月1日 + x 毫秒。 瞭解 Unix 的人知道爲什麼。
· new Date(1, 1, 1) 返回 1901, 二月 , 1號\。因爲,第一個參數表示1900年加1年,第二個參數表示這一年的第二個月(因此是二月) — 腦回路正常的人會從1開始索引 — ,第三個參數很明顯是這個月的第一天,所以1 — 有時候索引確實從1開始 — 。
· new Date(2016, 1, 1) 不會給1900年加上2016。它僅代表2016年。

刺激

Replace 並不“替代”

舉個例子,想要用Q替代q:

let s = "wuqiongqiongxiaokeai";
const replaced = s.replace('q', 'Q');
console.log(replaced);

但是replace只會替換第一個匹配的字符串。

這裏寫圖片描述

想要替換所有的字符,需要用到正則匹配:s.replace(/q/g, 'Q')

這裏寫圖片描述

比較的時候要注意

寫幾個比較典型的比較的例子:
console.log('abc' === 'abc');
console.log(1 === 1);
console.log([1, 2, 3] === [1, 2, 3]);
console.log({ a: 1 } === { a: 1 });  
console.log({} === {});

[1,2,3]和[1,2,3]是兩個獨立的數組。它們只是恰好包含相同的值。它們具有不同的引用,無法用===相比較。

結果自行查看:

這裏寫圖片描述

數組不是原始數據類型

console.log(typeof {} === 'object');
console.log(typeof 'a' === 'string');
console.log(typeof 1 === 'number');
console.log(typeof [] === 'object');  

這裏寫圖片描述

如果你想知道你的變量是不是數組,你仍然可以用Array.isArray(myVar)

閉包

談到 bind

(未完。。。)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章