isObjectLike
"This is your life. Do what you love, and do it often." —@Holstee
本文为 《lodash 源码阅读》 系列文章,后续内容会在 github 中发布,欢迎 star,gitbook 同步更新。
源码
/**
* 检查 value 是否是 类对象。
* 如果一个值是类对象,那么它不应该是 null,而且 typeof 后的结果是 "object"。
*
* @since 4.0.0
* @category Lang
* @param {*} value 要检查的值。
* @returns {boolean} 如果 value 为一个类对象,那么返回 true,否则返回 false。
* @example
*
* isObjectLike({})
* // => true
*
* isObjectLike([1, 2, 3])
* // => true
*
* isObjectLike(Function)
* // => false
*
* isObjectLike(null)
* // => false
*/
function isObjectLike(value) {
return typeof value == 'object' && value !== null;
}
知识点
null
typeof null === 'object'; // 从一开始出现JavaScript就是这样的
typeof
val 类型
结果
Undefined
"undefined"
Null
"object"
Boolean
"boolean"
Number
"number"
String
"string"
Symbol
"symbol"
Object(原生,且没有实现 [[call]])
"object"
Object(标准宿主,且没有实现 [[call]])
"object"
Object(原生或者宿主且实现了 [[call]])
"function"
Object(非标准宿主且没实现 [[call]])
由实现定义,但不能是 "undefined", "boolean", "number", or "string"
相关链接
Last updated
Was this helpful?