检查是否是原始值
function isObject(obj) {
return obj !== null && typeof obj === 'object'
}
获取值的原始类型字符串
var _toString = Object.prototype.toString;
function toRawType(value) {
return _toString.call(value).slice(8, -1)
}
严格的对象类型检查
function isPlainObject(obj) {
return _toString.call(obj) === '[object Object]'
}
严格的正则类型检查
function isRegExp(v) {
return _toString.call(v) === '[object RegExp]'
}
检查是够是有效的数组下标
function isValidArrayIndex(val) {
var n = parseFloat(String(val));
return n >= 0 && Math.floor(n) === n && isFinite(val)
}
值转换为实际的字符串
function toString(val) {
return val == null ?
'' :
Array.isArray(val) || (isPlainObject(val) && val.toString === _toString) ?
JSON.stringify(val, null, 2) :
String(val)
}
值转换为数字以进行持久化
function toNumber(val) {
var n = parseFloat(val);
return isNaN(n) ? val : n
}