是谁说 JavaScript 简单的?

来源:互联网 发布:狗狗听懂人说话知乎 编辑:程序博客网 时间:2024/04/28 22:30

这里写图片描述

给一个数组排排序

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

(未完。。。)

原创粉丝点击