给一个数组排排序
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
(未完。。。)