Type Comparison¶
在GFE做了很多type相关的题目,比如deep equal,重点type是Object和Array,先遍历,如果item是多层嵌套的,在每个item递归调用,另外,在Object中,还需要排除null的情况。
Hint:
forEach里的return不会终止循环,for里的return会终止循环。其他的思路是,可以用every和some,他们可以中止循环。
Primitive¶
Object.is(NaN, NaN)typeof NaNObject.prototype.toString.call(valueA)
Object¶
首先判断是不是object,可以用typeof和判断不是null。
通过Object.keys()来拿到keys,先判断length是否一致,再用for...of来遍历,递归调用deepEqual。
判断object¶
Object.getPrototypeOf(value) === Object.prototypevalue instanceof Objecttypeof value === 'object' && value !== null
iterate object¶
判断obj里有没有x属性¶
Object.hasOwn(obj, x)Object.prototype.hasOwnProperty.call(obj, x)
Array¶
思路的是先判断是否是array,再判断length是否一致,再遍历,遍历时候递归来判断每个item是否一致.注意forEach里的return不会终止循环,for里的return会终止循环。