把代码像小说一样进行推荐

为什么说读代码像读小说?| 王建硕

anime/anime.js at master · juliangarnier/anime

var is = {
  arr: function (a) {
    return Array.isArray(a)
  },
  obj: function (a) {
    return stringContains(Object.prototype.toString.call(a), 'Object')
  },
  pth: function (a) {
    return is.obj(a) && a.hasOwnProperty('totalLength')
  },
  svg: function (a) {
    return a instanceof SVGElement
  },
  inp: function (a) {
    return a instanceof HTMLInputElement
  },
  dom: function (a) {
    return a.nodeType || is.svg(a)
  },
  str: function (a) {
    return typeof a === 'string'
  },
  fnc: function (a) {
    return typeof a === 'function'
  },
  und: function (a) {
    return typeof a === 'undefined'
  },
  nil: function (a) {
    return is.und(a) || a === null
  },
  hex: function (a) {
    return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a)
  },
  rgb: function (a) {
    return /^rgb/.test(a)
  },
  hsl: function (a) {
    return /^hsl/.test(a)
  },
  col: function (a) {
    return is.hex(a) || is.rgb(a) || is.hsl(a)
  },
  key: function (a) {
    return (
      !defaultInstanceSettings.hasOwnProperty(a) &&
      !defaultTweenSettings.hasOwnProperty(a) &&
      a !== 'targets' &&
      a !== 'keyframes'
    )
  },
}

在这里 === 表达了更严格的相等,其实使用 == 效果也是一样的。计算机执行不会报错,但是为什么还是要使用 === 呢?我认为作者是想让人们阅读代码时有一种更舒适的感受。曾经听到过一句话,好的程序员不仅能写出计算机理解的代码,还能写出人能理解的代码。

欢迎通过「邮件」或者点击「这里」告诉我你的想法