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