1、基礎判斷
<code> function isUndef(v) { return v === undefined || v === null } function isDef(v) { return v !== undefined && v !== null } function isTrue(v) { return v === true } function isFalse(v) { return v === false }/<code>
2、檢查是否是原始值
<code> function isPrimitive(value) { return ( typeof value === 'string' || typeof value === 'number' || // $flow-disable-line typeof value === 'symbol' || typeof value === 'boolean' ) }/<code>
3、快速對象檢查
<code> function isObject(obj) { return obj !== null && typeof obj === 'object' }/<code>
4、獲取值的原始類型字符串
<code> var _toString = Object.prototype.toString; function toRawType(value) { return _toString.call(value).slice(8, -1) }/<code>
5、嚴格的對象類型檢查
<code> function isPlainObject(obj) { return _toString.call(obj) === '[object Object]' } // 這裡大家可以思考一下為什麼使用這種方式,還有下面的正則檢查/<code>
6、嚴格的正則類型檢查
<code> function isRegExp(v) { return _toString.call(v) === '[object RegExp]' }/<code>
7、檢查是夠是有效的數組下標
<code> function isValidArrayIndex(val) { var n = parseFloat(String(val)); return n >= 0 && Math.floor(n) === n && isFinite(val) }/<code>
8、值轉換為實際的字符串
<code> function toString(val) { return val == null ? '' : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) ? JSON.stringify(val, null, 2) : String(val) }/<code>
9、值轉換為數字以進行持久化
<code> function toNumber(val) { var n = parseFloat(val); return isNaN(n) ? val : n }/<code>
閱讀更多 web秀 的文章