# default

## 作用

设置当被检测值为`undefined | null`时，`validate`和`validateSilent`方法的返回值。

若为严格模&#x5F0F;***(strict=true)***, 则设置被检测值为`undefined | null | []`时的默认返回值。

## 参数

* `value` ***(\*)***  - *`validate`*&#x548C;*`validateSilent`*&#x9ED8;认值。推荐但不必须为`array`类型。当`value`为函数时，则设置函数的返回值为默认值，函数有一个参数：*被检测原始值——`undefined`, `null`或 `[]`*.
* `[strict]` ***(boolean)*** - 是否开启严格模式，默认为`false`不开启。若明确设置`strict=true`则开启严格模式。
* `[ctx]` ***(\*)*** - 当`value`为函数时的执行上下文`this`。

> **注意**
>
> *强烈建议使用函数返回默认数组，避免多次调用`validate`或`validateSilent`得到的返回值为同一个引用数组。*

## 示例

```javascript
const schema1 = racoon.array().default(
  () => [1]
);
schema1.validate(undefined); // pass, 返回 [1]
schema1.validate(null); // pass, 返回 [1]
schema1.validate([]); // pass, 返回 []

const schema2 = racoon().array().default(
  () => [1],
  true
);
schema2.validate(undefined); // pass, 返回 [1]
schema2.validate(null); // pass, 返回 [1]
schema2.validate([]); // pass, 返回 [1]
```
