ut2
Version:
一个现代 JavaScript 实用工具库。[点击查看在线文档]。
40 lines (39 loc) • 1.43 kB
TypeScript
/**
* 浅比较两个值是否相等。常用于参数对象比较。
*
* 1. 如果两个值相等,返回 `true`。
* 2. 如果两个对象属性数量相等,且遍历每个属性值都相等,则返回 `true`。
* 3. 否则返回 `false`。
*
* @alias module:Util.shallowEqual
* @since 1.21.0
* @param {Array} objA 要比较的值。。
* @param {Array} objB 另一个要比较的值。
* @param {boolean} [strictCheck=true] 严格比较,如果为 `true` 表示区分 `0` 和 `-0`。默认 `true`。
* @returns 浅比较两个值是否相等。
* @example
* shallowEqual({ a: 1, b: 2 }, { a: 1, b: 2 }); // true
* shallowEqual({ a: 1, b: 2 }, { a: 1, b: 3 }); // false
*
* shallowEqual([1, 2], [1, 2]); // true
* shallowEqual([1, 2], [1, 3]); // false
* shallowEqual([1, 2], [1, 2, 3]); // false
*
* // 两个相等值返回 true
* shallowEqual(1, 1); // true
* shallowEqual('foo', 'foo'); // true
* shallowEqual(NaN, NaN); // true
* shallowEqual(null, null); // true
* shallowEqual(undefined, undefined); // true
* const obj1 = {};
* const obj2 = obj1;
* shallowEqual(obj1, obj2); // true
*
* // 默认严格比较,区分 0 和 -0
* shallowEqual([0, -0], [-0, 0]); // false
*
* // 非严格比较,不区分 0 和 -0
* shallowEqual([0, -0], [-0, 0], false); // true
*/
declare function shallowEqual(objA: any, objB: any, strictCheck?: boolean): boolean;
export default shallowEqual;