npm package: @leap-ui/common-util
Description: fontend common utils
Latest version: 0.1.0

# @leap-ui/common-util

## 安装
> npm install @leap-ui/common-util --save

## API

### beArrayIfNotArray()

#### 描述
beArrayIfNotArray() 确保返回的一定是一个数组。如果参数是一个数组，则返回这个数组本身，如果参数是一个非数组类型的变量，则返回一个空数组。作用是确保变量是一个数组类型，使得随后的代码对这个变量进行数组操作的时候不会报运行时错误。

#### 语法
```javascript
beArrayIfNotArray(variable);
```

##### 参数
``variable``

任何类型的变量。

##### 返回
如果参数 ``variable`` 是一个数组，则返回这个数组本身，如果参数是一个非数组类型的变量，则返回一个空数组。

#### 示例
```javascript
const nullishVar = null;
const booleanVar = true;
const stringVar = 'abc';
const numberVar = 100;
const objectVar = {};
const arrayVar = [1, 2, 3];

beArrayIfNotArray(nullishVar); // []
beArrayIfNotArray(booleanVar); // []
beArrayIfNotArray(stringVar); // []
beArrayIfNotArray(numberVar); // []
beArrayIfNotArray(objectVar); // []
beArrayIfNotArray(arrayVar); // [1, 2, 3]
```

### beFalseIfNotBoolean()

#### 描述
beFalseIfNotBoolean() 确保返回的一定是一个布尔型。如果参数是一个布尔型，则返回这个参数本身，如果参数是一个非数布尔型的变量，则默认返回 false。

#### 语法
```javascript
beFalseIfNotBoolean(variable);
```

##### 参数
``variable``

任何类型的变量。

##### 返回
如果参数 ``variable`` 是一个布尔型，则返回这个参数本身，如果参数是一个非数布尔型的变量，则默认返回 false。

#### 示例
```javascript
const nullishVar = null;
const booleanVar = true;
const stringVar = 'abc';
const numberVar = 100;
const objectVar = {};
const arrayVar = [1, 2, 3];

beFalseIfNotBoolean(nullishVar); // false
beFalseIfNotBoolean(booleanVar); // true
beFalseIfNotBoolean(stringVar); // false
beFalseIfNotBoolean(numberVar); // false
beFalseIfNotBoolean(objectVar); // false
beFalseIfNotBoolean(arrayVar); // false
```

### beTrueIfNotBoolean()

#### 描述
beTrueIfNotBoolean() 确保返回的一定是一个布尔型。如果参数是一个布尔型，则返回这个参数本身，如果参数是一个非数布尔型的变量，则默认返回 true。

#### 语法
```javascript
beTrueIfNotBoolean(variable);
```

##### 参数
``variable``

任何类型的变量。

##### 返回
如果参数 ``variable`` 是一个布尔型，则返回这个参数本身，如果参数是一个非数布尔型的变量，则默认返回 true。

#### 示例
```javascript
const nullishVar = null;
const booleanVar = false;
const stringVar = 'abc';
const numberVar = 100;
const objectVar = {};
const arrayVar = [1, 2, 3];

beTrueIfNotBoolean(nullishVar); // true
beTrueIfNotBoolean(booleanVar); // false
beTrueIfNotBoolean(stringVar); // true
beTrueIfNotBoolean(numberVar); // true
beTrueIfNotBoolean(objectVar); // true
beTrueIfNotBoolean(arrayVar); // true
```

### getURLSearchParameter()

#### 描述
getURLSearchParameter() 获取 URL 中 search 部分的参数值。

#### 语法
```javascript
getURLSearchParameter(searchString, parameterName);
```

##### 参数
``searchString``

形如 ``myname=value`` 或者 ``?myname=value`` 的字符串.

``parameterName``

字符串 ``myname=value`` 中的 ``myname``。

##### 返回
``https://user:pass@sub.example.com:8080/p/a/t/h?query=stringvalue#hash`` 中的 stringvalue，如果 URL 中不存在此参数名，则返回 null

#### 示例
```javascript
getURLSearchParameter('springfilm=thewanderingearth', 'springfilm'); // thewanderingearth
getURLSearchParameter('?springfilm=thewanderingearth', 'springfilm'); // thewanderingearth
getURLSearchParameter('springfilm=test&springfilm=thewanderingearth', 'springfilm'); // test
getURLSearchParameter('springfilm=test&springfilm=thewanderingearth', 'abc'); // null
// 在浏览器中也可以：getURLSearchParameter(window.location.search, 'springfilm');
```

### isNullish()

#### 描述
判断变量是否是“空值”（null 或 undefined）。

#### 语法
```javascript
isNullish(variable);
```

##### 参数
``variable``

任何类型的变量。

##### 返回
如果参数 ``variable`` 是 null 或者 undefined，则返回 true，其他情况返回 false。

#### 示例
```javascript
const a = null;
const b = undefined;
const c = '';
const d = 0;

isNullish(a); // true
isNullish(b); // true
isNullish(c); // false
isNullish(d); // false
```

### isNumber()

#### 描述
isNumber() 判断变量是否是一个可计算的数字。暂时不考虑对 bigint 类型的支持，即如果变量为 bigint 类型，此函数返回 false。

#### 语法
```javascript
isNumber(variable);
```

##### 参数
``variable``

任何类型的变量。

##### 返回
如果参数 ``variable`` 不是 number 类型 或者是 NaN 或者是 Infinity，则返回 false。其他返回 true。

#### 示例
```javascript
isNumber(123); // true
isNumber('abc'); // false
isNumber(true); // false
isNumber(Number.NaN); // false
isNumber(Number.NEGATIVE_INFINITY); // false
isNumber(Number.POSITIVE_INFINITY); // false
isNumber(Infinity); // false
```

### isNativePromise()

#### 描述
isNativePromise() 判断是否是一个原生 promise。

#### 语法
```javascript
isNativePromise(variable);
```

##### 参数
``variable``

任何类型的变量。

##### 返回
如果参数 ``variable`` 是 thenable，则返回 true，其他返回 false。

#### 示例
```javascript
isNativePromise(123); // false
isNativePromise('abc'); // false
isNativePromise(new Promise(() => {})); // true
isNativePromise(Promise.resolve()); // true
```