跳到主要内容

容易混淆的一些概念或名词

并发(concurrency)和并行(parallelism)区别

并发是宏观概念,我分别有任务 A 和任务 B,在一段时间内通过任务间的切换完成了这两个任务,这种情况就可以称之为并发。

并行是微观概念,假设 CPU 中存在两个核心,那么我就可以同时完成任务 A、B。同时完成多个任务的情况就可以称之为并行。

关键点是:是否是『同时』。

SameValue VS SameValueZero

  • SameValueZero 不区分 -0 和 +0,即 -0 === +0
  • SameValue 区分 -0 和 +0,Object.is 内部采用的比较算法就是SameValue(x, y)
// SameValue
Object.is(NaN, NaN) // true
Object.is(0, -0) // false

// SameValueZero
console.log(-0 === +0) // true