給一個數組排排序
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
(未完。。。)