loadash知识整理

1、_.isPlainObject(value)

参数
  1. `value` (*): 要检查的值。
返回

(boolean): 如果 `value` 为一个普通对象,那么返回 `true`,否则返回 `false`。

例子

```plain

function Foo() {

this.a = 1;

}

_.isPlainObject(new Foo);

// => false

_.isPlainObject(1, 2, 3);

// => false

_.isPlainObject({ 'x': 0, 'y': 0 });

// => true

_.isPlainObject(Object.create(null));

// => true

复制代码
<h4 id="PuQ5L">相似函数:`_.isObject(value)`</h4>
<font style="color:#1C1E21;">检查 </font>`value`<font style="color:#1C1E21;"> 是否为 </font>`Object`<font style="color:#1C1E21;"> 的</font>[language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)<font style="color:#1C1E21;">。 </font>_(例如: arrays, functions, objects, regexes,_`_new Number(0)_`_, 以及 _`_new String('')_`_)_

<h4 id="bqOJk">参数</h4>
1. `value` _(*)_: 要检查的值。

<h4 id="TBgWw">返回</h4>
_(boolean)_: 如果 `value` 为一个对象,那么返回 `true`,否则返回 `false`。

<h4 id="PwwxS">例子</h4>
```plain
_.isObject({});
// => true
 
_.isObject([1, 2, 3]);
// => true
 
_.isObject(_.noop);
// => true
 
_.isObject(null);
// => false

2、_.get(object, path, defaultValue)

根据 `object` 对象的`path` 路径获取值。 如果解析 value 是 `undefined` 会以 `defaultValue` 取代。

参数
  1. `object` (Object): 要检索的对象。 2. `path` (Array|string): 要获取属性的路径。 3. `defaultValue` (*): 如果解析值是 `undefined` ,这值会被返回。
返回

(*): 返回解析的值。

例子

```plain var object = { 'a': { 'b': { 'c': 3 } } }; _.get(object, 'a0.b.c'); // => 3 _.get(object, 'a', '0', 'b', 'c'); // => 3 _.get(object, 'a.b.c', 'default'); // => 'default' ```

3、_.hasIn(object, path)

检查 `path` 是否是`object` 对象的直接或继承属性。

参数
  1. `object` (Object): 要检索的对象。 2. `path` (Array|string): 要检查的路径`path`。
返回

(boolean): 如果`path`存在,那么返回 `true` ,否则返回 `false`。

例子

```plain var object = _.create({ 'a': _.create({ 'b': 2 }) });

_.hasIn(object, 'a');

// => true

_.hasIn(object, 'a.b');

// => true

_.hasIn(object, 'a', 'b');

// => true

_.hasIn(object, 'b');

// => false

复制代码
xfront项目中的相关使用例子如下:

```plain
 const feedback = response => {
    const type = get(response.data, 'type', 0);
    const msg = getMsg(response);
    const hasFrontMsg = hasIn(response.config, 'msg');
    switch (type) {
      case 0:
        if (hasFrontMsg) { // 此处的用处是否可以理解为判断response.config里是否包含msg属性
          Message.success(msg);
        }
        break;
      case -1:
        Message.error(msg);
        break;
      case -2:
        if (response.config.responseType !== 'blob') {
          showError({
            ...response.data,
            msg
          });
        }
        break;
    }
  };

4、`_.defaultTo(value, defaultValue)`

检查`value` ,以确定一个默认值是否应被返回。如果`value` 为`NaN` , `null` , 或者 `undefined` ,那么返回`defaultValue` 默认值。

参数
  1. `value` (*): 要检查的值。 2. `defaultValue` (*): 默认值。
返回

(*): 返回 resolved 值。

例子

```plain _.defaultTo(1, 10); // => 1

_.defaultTo(undefined, 10);

// => 10

复制代码
相关推荐
程序员Sunday6 小时前
JavaScript 事件循环面试题,宏任务与微任务怎么执行|Sunday面试指南
开发语言·javascript·面试·校招·事件循环·程序员sunday
Setsuna_F_Seiei6 小时前
前端转型 Agent 开发 06 之 Agent Memory 记忆系统(让 Agent 更智能,更懂你)
前端·agent·ai编程
zhangzeyuaaa7 小时前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby
默_笙8 小时前
🌊 向量库和 ES 都查不出"关系",我只好给奶茶建了一张人脉网
前端·javascript
优选资讯8 小时前
标签打印软件怎么对接 Excel 数据
前端·excel
思无邪668 小时前
用 AI 做 JS 逆向:从抓包到复现的完整方法论
开发语言·javascript·人工智能
一个风轻云淡9 小时前
GCC 和 GDB命令简单解读
java·linux·前端
u01110267510 小时前
图片处理接口如何统一错误信息 前端提示与后端错误码设计
前端·状态模式
福兮说10 小时前
浏览器里把 iPhone 的 HEIC 转成 JPG:Chrome 解不开、转完大了七成、拍摄时间全丢,六个坑实测
前端·javascript·图像处理·chrome·ios·iphone·heic
libokaifa10 小时前
把语音模型塞进手机:sherpa-onnx 在 Android 上的 ASR / TTS
前端