基础、引用数据类型判断,转换 参考代码vue.js v2.6.14 源码
- 判断是否未定义
function isUndef (v) {
return v === undefined || v === null
}
- 判断是否已定义
function isDef () {
return v !== undefined && v !== null
}
- 判断是否为 true
function isTrue (v) {
return v === true
}
- 判断是否为 false
function isFalse (v) {
return v === false
}
- 判断是否属于基本数据类型
判断基本数据类型可以使用 typeof
function isPrimitive (value) {
return (
typeOf value === 'string' ||
typeOf value === 'number' ||
typeOf value === 'symbol' ||
typeOf value === 'boolean' ||
)
}
- 判断是否为 object 类型
typeOf null 判断结果为 object,因此需要单独排除
function isObject (obj) {
return obj !== null && typeof obj === 'object'
}
- 判断 value 数据类型
let _toString = Object.prototype.toString;
function toRawType (value) {
return _toString.call(value).slice(8, -1)
}
- 判断是否为 promise 对象
function isDef () {
return v !== undefined && v !== null
}
function isPromise (val) {
return (
isDef(val) &&
typeof val.then === 'function' &&
typeof val.catch === 'function'
)
}
- 将 value 转化为 string 类型
function toString (val) {
return val == null
? ''
: Array.isArray(val) || isObject(val)
? JSON.stringify(val, null, 2)
: String(val)
}
- 将 value 转化为 number 类型,若无法转化,返回原数据
function toNumber (val) {
var n = parseFloat(val);
return isNaN(n) ? val : n
}