# @ohos.util (util)
The **util** module provides common utility functions, such as [TextEncoder](#textencoder) and [TextDecoder](#textdecoder) for string encoding and decoding, [RationalNumber8+](#rationalnumber8) for rational number operations, [LRUCache9+](#lrucache9) for cache management, [ScopeHelper9+](#scopehelper9) for range determination, [Base64Helper9+](#base64helper9) for Base64 encoding and decoding, and [types8+](#types8) for built-in object type check.
> **NOTE**
>
> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## Modules to Import
```js
import util from '@ohos.util';
```
## util.format9+
format(format: string, ...args: Object[]): string
Formats the specified values and inserts them into the string by replacing the wildcard in the string.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory| Description |
| ------- | -------- | ---- | -------------- |
| format | string | Yes | String.|
| ...args | Object[] | No | Values to format. The formatted values will replace the wildcard in the string. If this parameter is not set, the first parameter is returned by default.|
**Return value**
| Type | Description |
| ------ | ---------------------------- |
| string | String containing the formatted values.|
**Example**
```js
let res = util.format("%s", "hello world!");
console.log(res);
```
## util.errnoToString9+
errnoToString(errno: number): string
Obtains detailed information about a system error code.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | -------------------------- |
| errno | number | Yes | Error code generated.|
**Return value**
| Type | Description |
| ------ | ---------------------- |
| string | Detailed information about the error code.|
**Example**
```js
let errnum = -1; // -1 is a system error code.
let result = util.errnoToString(errnum);
console.log("result = " + result);
```
**Some error code and message examples**
| Error Code| Message |
| ------ | -------------------------------- |
| -1 | operation not permitted |
| -2 | no such file or directory |
| -3 | no such process |
| -4 | interrupted system call |
| -5 | i/o error |
| -11 | resource temporarily unavailable |
| -12 | not enough memory |
| -13 | permission denied |
| -100 | network is down |
## util.callbackWrapper
callbackWrapper(original: Function): (err: Object, value: Object )=>void
Calls back an asynchronous function. In the callback, the first parameter indicates the cause of the rejection (the value is **null** if the promise has been resolved), and the second parameter indicates the resolved value.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| original | Function | Yes| Asynchronous function.|
**Return value**
| Type| Description|
| -------- | -------- |
| Function | Callback, in which the first parameter indicates the cause of the rejection (the value is **null** if the promise has been resolved) and the second parameter indicates the resolved value.|
**Example**
```js
async function fn() {
return 'hello world';
}
let cb = util.callbackWrapper(fn);
cb(1, (err, ret) => {
if (err) throw err;
console.log(ret);
});
```
## util.promisify9+
promisify(original: (err: Object, value: Object) => void): Function
Processes an asynchronous function and returns a promise.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| original | Function | Yes| Asynchronous function.|
**Return value**
| Type| Description|
| -------- | -------- |
| Function | Function in the error-first style (that is, **(err, value) =>...** is called as the last parameter) and the promise.|
**Example**
```js
function fun(num, callback) {
if (typeof num === 'number') {
callback(null, num + 3);
} else {
callback("type err");
}
}
const addCall = util.promisify(fun);
(async () => {
try {
let res = await addCall(2);
console.log(res);
} catch (err) {
console.log(err);
}
})();
```
## util.generateRandomUUID9+
generateRandomUUID(entropyCache?: boolean): string
Uses a secure random number generator to generate a random universally unique identifier (UUID) of the string type in RFC 4122 version 4.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| entropyCache | boolean | No| Whether a cached UUID can be used. The default value is **true**.|
**Return value**
| Type| Description|
| -------- | -------- |
| string | A string representing the UUID generated.|
**Example**
```js
let uuid = util.generateRandomUUID(true);
console.log("RFC 4122 Version 4 UUID:" + uuid);
// Output:
// RFC 4122 Version 4 UUID:88368f2a-d5db-47d8-a05f-534fab0a0045
```
## util.generateRandomBinaryUUID9+
generateRandomBinaryUUID(entropyCache?: boolean): Uint8Array
Uses a secure random number generator to generate a random UUID of the Uint8Array type in RFC 4122 version 4.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| entropyCache | boolean | No| Whether a cached UUID can be used. The default value is **true**.|
**Return value**
| Type| Description|
| -------- | -------- |
| Uint8Array | A Uint8Array value representing the UUID generated.|
**Example**
```js
let uuid = util.generateRandomBinaryUUID(true);
console.log(JSON.stringify(uuid));
// Output:
// 138,188,43,243,62,254,70,119,130,20,235,222,199,164,140,150
```
## util.parseUUID9+
parseUUID(uuid: string): Uint8Array
Converts the UUID of the string type generated by **generateRandomUUID** to the UUID of the **Uint8Array** type generated by **generateRandomBinaryUUID**, as described in RFC 4122 version 4.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| uuid | string | Yes| A string representing the UUID.|
**Return value**
| Type| Description|
| -------- | -------- |
| Uint8Array | A Uint8Array value representing the UUID parsed. If the parsing fails, **SyntaxError** is thrown.|
**Example**
```js
let uuid = util.parseUUID("84bdf796-66cc-4655-9b89-d6218d100f9c");
console.log(JSON.stringify(uuid));
// Output:
// 132,189,247,150,102,204,70,85,155,137,214,33,141,16,15,156
```
## util.printf(deprecated)
printf(format: string, ...args: Object[]): string
Formats the specified values and inserts them into the string by replacing the wildcard in the string.
> **NOTE**
>
> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [util.format9+](#utilformat9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| format | string | Yes| String.|
| ...args | Object[] | No| Values to format. The formatted values will replace the wildcard in the string. If this parameter is not set, the first parameter is returned by default.|
**Return value**
| Type| Description|
| -------- | -------- |
| string | String containing the formatted values.|
**Example**
```js
let res = util.printf("%s", "hello world!");
console.log(res);
```
## util.getErrorString(deprecated)
getErrorString(errno: number): string
Obtains detailed information about a system error code.
> **NOTE**
>
> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [util.errnoToString9+](#utilerrnotostring9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| errno | number | Yes| Error code generated.|
**Return value**
| Type| Description|
| -------- | -------- |
| string | Detailed information about the error code.|
**Example**
```js
let errnum = -1; // -1 is a system error code.
let result = util.getErrorString(errnum);
console.log("result = " + result);
```
## util.promiseWrapper(deprecated)
promiseWrapper(original: (err: Object, value: Object) => void): Object
Processes an asynchronous function and returns a promise.
> **NOTE**
>
> This API is unavailable. You are advised to use [util.promisify9+](#utilpromisify9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| original | Function | Yes| Asynchronous function.|
**Return value**
| Type| Description|
| -------- | -------- |
| Function | Function in the error-first style (that is, **(err, value) =>...** is called as the last parameter) and the promise.|
## TextDecoder
Provides APIs to decode byte arrays into strings. It supports multiple formats, including UTF-8, UTF-16LE, UTF-16BE, ISO-8859, and Windows-1251.
### Attributes
**System capability**: SystemCapability.Utils.Lang
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
| encoding | string | Yes| No| Encoding format.
- Supported formats: utf-8, ibm866, iso-8859-2, iso-8859-3, iso-8859-4, iso-8859-5, iso-8859-6, iso-8859-7, iso-8859-8, iso-8859-8-i, iso-8859-10, iso-8859-13, iso-8859-14, iso-8859-15, koi8-r, koi8-u, macintosh, windows-874, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, x-mac-cyrilli, gbk, gb18030, big5, euc-jp, iso-2022-jp, shift_jis, euc-kr, utf-16be, utf-16le|
| fatal | boolean | Yes| No| Whether to display fatal errors.|
| ignoreBOM | boolean | Yes| No| Whether to ignore the byte order marker (BOM). The default value is **false**, which indicates that the result contains the BOM.|
### constructor9+
constructor()
A constructor used to create a **TextDecoder** object.
**System capability**: SystemCapability.Utils.Lang
### create9+
create(encoding?: string,options?: { fatal?: boolean; ignoreBOM?: boolean }): TextDecoder;
Creates a **TextDecoder** object. It provides the same function as the deprecated argument constructor.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ------ | ---- | ------------------------------------------------ |
| encoding | string | No | Encoding format. The default format is **'utf-8'**. |
| options | Object | No | Encoding-related options, which include **fatal** and **ignoreBOM**.|
**Table 1.1** options
| Name | Type| Mandatory| Description |
| --------- | -------- | ---- | ------------------ |
| fatal | boolean | No | Whether to display fatal errors. The default value is **false**.|
| ignoreBOM | boolean | No | Whether to ignore the BOM. The default value is **false**. |
**Example**
```js
let result = util.TextDecoder.create('utf-8', { ignoreBOM : true })
let retStr = result.encoding
```
### decodeWithStream9+
decodeWithStream(input: Uint8Array, options?: { stream?: boolean }): string
Decodes the input content.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| input | Uint8Array | Yes| Uint8Array to decode.|
| options | Object | No| Options related to decoding.|
**Table 2** options
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| stream | boolean | No| Whether to allow data blocks in subsequent **decodeWithStream()**. If data is processed in blocks, set this parameter to **true**. If this is the last data block to process or data is not divided into blocks, set this parameter to **false**. The default value is **false**.|
**Return value**
| Type| Description|
| -------- | -------- |
| string | Data decoded.|
**Example**
```js
let textDecoder = new util.TextDecoder("utf-8",{ignoreBOM: true});
let result = new Uint8Array(6);
result[0] = 0xEF;
result[1] = 0xBB;
result[2] = 0xBF;
result[3] = 0x61;
result[4] = 0x62;
result[5] = 0x63;
console.log("input num:");
let retStr = textDecoder.decodeWithStream( result , {stream: false});
console.log("retStr = " + retStr);
```
### constructor(deprecated)
constructor(encoding?: string, options?: { fatal?: boolean; ignoreBOM?: boolean })
A constructor used to create a **TextDecoder** object.
> **NOTE**
>
> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [create9+](#create9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| encoding | string | No| Encoding format. The default format is **'utf-8'**.|
| options | Object | No| Encoding-related options, which include **fatal** and **ignoreBOM**.|
**Table 1** options
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| fatal | boolean | No| Whether to display fatal errors. The default value is **false**.|
| ignoreBOM | boolean | No| Whether to ignore the BOM. The default value is **false**.|
**Example**
```js
let textDecoder = new util.TextDecoder("utf-8",{ignoreBOM: true});
```
### decode(deprecated)
decode(input: Uint8Array, options?: { stream?: false }): string
Decodes the input content.
> **NOTE**
>
> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [decodeWithStream9+](#decodewithstream9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| input | Uint8Array | Yes| Uint8Array to decode.|
| options | Object | No| Options related to decoding.|
**Table 2** options
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| stream | boolean | No| Whether to allow data blocks in subsequent **decode()**. If data is processed in blocks, set this parameter to **true**. If this is the last data block to process or data is not divided into blocks, set this parameter to **false**. The default value is **false**.|
**Return value**
| Type| Description|
| -------- | -------- |
| string | Data decoded.|
**Example**
```js
let textDecoder = new util.TextDecoder("utf-8",{ignoreBOM: true});
let result = new Uint8Array(6);
result[0] = 0xEF;
result[1] = 0xBB;
result[2] = 0xBF;
result[3] = 0x61;
result[4] = 0x62;
result[5] = 0x63;
console.log("input num:");
let retStr = textDecoder.decode( result , {stream: false});
console.log("retStr = " + retStr);
```
## TextEncoder
Provides APIs to encode strings into byte arrays. It supports multiple formats, including UTF-8, UTF-16LE, and UTF-16BE. When **TextEncoder** is used for encoding, the number of bytes occupied by a character varies according to the encoding format. For example, a Chinese character usually occupies three bytes in UTF-8 encoding format but two bytes in UTF-16LE or UTF-16BE encoding format. Therefore, when using **TextEncoder**, you must explicitly specify the encoding format to obtain the required encoding result.
### Attributes
**System capability**: SystemCapability.Utils.Lang
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
| encoding | string | Yes| No| Encoding format. The default format is **'utf-8'**.|
### constructor
constructor()
A constructor used to create a **TextEncoder** object.
**System capability**: SystemCapability.Utils.Lang
**Example**
```js
let textEncoder = new util.TextEncoder();
```
### constructor9+
constructor(encoding?: string)
A constructor used to create a **TextEncoder** object.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| ----- | ---- | ---- | ---- |
| encoding | string | No| Encoding format. The default format is **'utf-8'**.|
**Example**
```js
let textEncoder = new util.TextEncoder("utf-8");
```
### encodeInto9+
encodeInto(input?: string): Uint8Array
Encodes the input content.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | ------------------ |
| input | string | No | String to encode. The default value is an empty string.|
**Return value**
| Type | Description |
| ---------- | ------------------ |
| Uint8Array | Encoded text.|
**Example**
```js
let textEncoder = new util.TextEncoder();
let buffer = new ArrayBuffer(20);
let result = new Uint8Array(buffer);
result = textEncoder.encodeInto("\uD800¥¥");
```
### encodeIntoUint8Array9+
encodeIntoUint8Array(input: string, dest: Uint8Array): { read: number; written: number }
Stores the UTF-8 encoded text.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ---------- | ---- | ------------------------------------------------------- |
| input | string | Yes | String to encode. |
| dest | Uint8Array | Yes | **Uint8Array** instance used to store the UTF-8 encoded text.|
**Return value**
| Type | Description |
| ---------- | ------------------ |
| Uint8Array | Encoded text.|
**Example**
```js
let that = new util.TextEncoder()
let buffer = new ArrayBuffer(4)
let dest = new Uint8Array(buffer)
let result = new Object()
result = that.encodeIntoUint8Array('abcd', dest)
```
### encodeInto(deprecated)
encodeInto(input: string, dest: Uint8Array): { read: number; written: number }
Stores the UTF-8 encoded text.
> **NOTE**
>
> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [encodeIntoUint8Array9+](#encodeintouint8array9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| input | string | Yes| String to encode.|
| dest | Uint8Array | Yes| **Uint8Array** instance used to store the UTF-8 encoded text.|
**Return value**
| Type| Description|
| -------- | -------- |
| Uint8Array | Encoded text.|
**Example**
```js
let that = new util.TextEncoder()
let buffer = new ArrayBuffer(4)
let dest = new Uint8Array(buffer)
let result = new Object()
result = that.encodeInto('abcd', dest)
```
### encode(deprecated)
encode(input?: string): Uint8Array
Encodes the input content.
> **NOTE**
>
> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [encodeInto9+](#encodeinto9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| input | string | No| String to encode. The default value is an empty string.|
**Return value**
| Type| Description|
| -------- | -------- |
| Uint8Array | Encoded text.|
**Example**
```js
let textEncoder = new util.TextEncoder();
let buffer = new ArrayBuffer(20);
let result = new Uint8Array(buffer);
result = textEncoder.encode("\uD800¥¥");
```
## RationalNumber8+
Provides APIs to compare rational numbers and obtain numerators and denominators. For example, the **toString()** API can be used to convert a rational number into a string.
### constructor9+
constructor()
A constructor used to create a **RationalNumber** object.
**System capability**: SystemCapability.Utils.Lang
**Example**
```js
let rationalNumber = new util.RationalNumber();
```
### parseRationalNumber9+
parseRationalNumber(numerator: number,denominator: number): RationalNumber
Parses a rational number. Previously, this processing is an internal action of the deprecated constructor.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory| Description |
| ----------- | ------ | ---- | ---------------- |
| numerator | number | Yes | Numerator, which is an integer.|
| denominator | number | Yes | Denominator, which is an integer.|
**Example**
```js
let rationalNumber = util.RationalNumber.parseRationalNumber(1,2)
```
### createRationalFromString8+
static createRationalFromString(rationalString: string): RationalNumber
Creates a **RationalNumber** object based on the given string.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| rationalString | string | Yes| String used to create the **RationalNumber** object.|
**Return value**
| Type| Description|
| -------- | -------- |
| object | **RationalNumber** object created.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
let rational = util.RationalNumber.createRationalFromString("3/4");
```
### compare9+
compare(another: RationalNumber): number
Compares this **RationalNumber** object with a given object.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory| Description |
| ------- | -------------- | ---- | ------------------ |
| another | RationalNumber | Yes | Object used to compare with this **RationalNumber** object.|
**Return value**
| Type | Description |
| ------ | ------------------------------------------------------------ |
| number | Returns **0** if the two objects are equal; returns **1** if the given object is less than this object; return **-1** if the given object is greater than this object.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
let rational = util.RationalNumber.createRationalFromString("3/4");
let result = rationalNumber.compare(rational);
```
### valueOf8+
valueOf(): number
Obtains the value of this **RationalNumber** object as an integer or a floating-point number.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| number | An integer or a floating-point number.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.valueOf();
```
### equals8+
equals(obj: Object): boolean
Checks whether this **RationalNumber** object equals the given object.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| object | Object | Yes| Object used to compare with this **RationalNumber** object.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the two objects are equal; returns **false** otherwise.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
let rational = util.RationalNumber.createRationalFromString("3/4");
let result = rationalNumber.equals(rational);
```
### getCommonFactor9+
getCommonFactor(number1: number,number2: number): number
Obtains the greatest common divisor of two specified integers.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory| Description |
| ------- | ------ | ---- | ---------- |
| number1 | number | Yes | The first integer used to get the greatest common divisor.|
| number2 | number | Yes | The second integer used to get the greatest common divisor.|
**Return value**
| Type | Description |
| ------ | ------------------------------ |
| number | Greatest common divisor obtained.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
let result = util.RationalNumber.getCommonFactor(4,6);
```
### getNumerator8+
getNumerator(): number
Obtains the numerator of this **RationalNumber** object.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| number | Numerator of this **RationalNumber** object.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.getNumerator();
```
### getDenominator8+
getDenominator(): number
Obtains the denominator of this **RationalNumber** object.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| number | Denominator of this **RationalNumber** object.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.getDenominator();
```
### isZero8+
isZero():boolean
Checks whether this **RationalNumber** object is **0**.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the value of this **RationalNumber** object is **0**; returns **false** otherwise.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.isZero();
```
### isNaN8+
isNaN(): boolean
Checks whether this **RationalNumber** object is a Not a Number (NaN).
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if this **RationalNumber** object is a NaN (the denominator and numerator are both **0**); returns **false** otherwise.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.isNaN();
```
### isFinite8+
isFinite():boolean
Checks whether this **RationalNumber** object represents a finite value.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if this **RationalNumber** object represents a finite value (the denominator is not **0**); returns **false** otherwise.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.isFinite();
```
### toString8+
toString(): string
Obtains the string representation of this **RationalNumber** object.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| string | Returns **NaN** if the numerator and denominator of this object are both **0**; returns a string in Numerator/Denominator format otherwise, for example, **3/5**.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
let result = rationalNumber.toString();
```
### constructor(deprecated)
constructor(numerator: number,denominator: number)
A constructor used to create a **RationalNumber** object.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [constructor9+](#constructor9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| numerator | number | Yes| Numerator, which is an integer.|
| denominator | number | Yes| Denominator, which is an integer.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
```
### compareTo(deprecated)
compareTo(another: RationalNumber): number
Compares this **RationalNumber** object with a given object.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [compare9+](#compare9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| another | RationalNumber | Yes| Object used to compare with this **RationalNumber** object.|
**Return value**
| Type| Description|
| -------- | -------- |
| number | Returns **0** if the two objects are equal; returns **1** if the given object is less than this object; return **-1** if the given object is greater than this object.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
let rational = util.RationalNumber.createRationalFromString("3/4");
let result = rationalNumber.compareTo(rational);
```
### getCommonDivisor(deprecated)
static getCommonDivisor(number1: number,number2: number): number
Obtains the greatest common divisor of two specified integers.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getCommonFactor9+](#getcommonfactor9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| number1 | number | Yes| The first integer used to get the greatest common divisor.|
| number2 | number | Yes| The second integer used to get the greatest common divisor.|
**Return value**
| Type| Description|
| -------- | -------- |
| number | Greatest common divisor obtained.|
**Example**
```js
let rationalNumber = new util.RationalNumber(1,2);
let result = util.RationalNumber.getCommonDivisor(4,6);
```
## LRUCache9+
Provides APIs to discard the least recently used data to make rooms for new elements when the cache is full. This class uses the Least Recently Used (LRU) algorithm, which believes that the recently used data may be accessed again in the near future and the least accessed data is the least valuable data and should be removed from the cache.
### Attributes
**System capability**: SystemCapability.Utils.Lang
| Name | Type | Readable| Writable| Description |
| ------ | ------ | ---- | ---- | ---------------------- |
| length | number | Yes | No | Total number of values in this cache.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
pro.put(1,8);
let result = pro.length;
```
### constructor9+
constructor(capacity?: number)
A constructor used to create a **LruCache** instance. The default capacity of the cache is 64.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ------ | ---- | ---------------------------- |
| capacity | number | No | Capacity of the **LruCache** to create. The default value is **64**.|
**Example**
```js
let lrubuffer= new util.LRUCache();
```
### updateCapacity9+
updateCapacity(newCapacity: number): void
Changes the **LruCache** capacity. If the new capacity is less than or equal to **0**, an exception will be thrown.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory| Description |
| ----------- | ------ | ---- | ---------------------------- |
| newCapacity | number | Yes | New capacity of the **LruCache**.|
**Example**
```js
let pro = new util.LRUCache();
pro.updateCapacity(100);
```
### toString9+
toString(): string
Obtains the string representation of this **LruCache** object.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| ------ | -------------------------- |
| string | String representation of this **LruCache** object.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
pro.get(2);
pro.remove(20);
let result = pro.toString();
```
### getCapacity9+
getCapacity(): number
Obtains the capacity of this cache.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| ------ | ---------------------- |
| number | Capacity of this cache.|
**Example**
```js
let pro = new util.LRUCache();
let result = pro.getCapacity();
```
### clear9+
clear(): void
Clears key-value pairs from this cache. The **afterRemoval()** method will be called to perform subsequent operations.
**System capability**: SystemCapability.Utils.Lang
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
let result = pro.length;
pro.clear();
```
### getCreateCount9+
getCreateCount(): number
Obtains the number of return values for **createDefault()**.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| ------ | --------------------------------- |
| number | Number of return values for **createDefault()**.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(1,8);
let result = pro.getCreateCount();
```
### getMissCount9+
getMissCount(): number
Obtains the number of times that the queried values are mismatched.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| ------ | ------------------------ |
| number | Number of times that the queried values are mismatched.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
pro.get(2);
let result = pro.getMissCount();
```
### getRemovalCount9+
getRemovalCount(): number
Obtains the number of removals from this cache.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| ------ | -------------------------- |
| number | Number of removals from the cache.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
pro.updateCapacity(2);
pro.put(50,22);
let result = pro.getRemovalCount();
```
### getMatchCount9+
getMatchCount(): number
Obtains the number of times that the queried values are matched.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| ------ | -------------------------- |
| number | Number of times that the queried values are matched.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
pro.get(2);
let result = pro.getMatchCount();
```
### getPutCount9+
getPutCount(): number
Obtains the number of additions to this cache.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| ------ | ---------------------------- |
| number | Number of additions to the cache.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
let result = pro.getPutCount();
```
### isEmpty9+
isEmpty(): boolean
Checks whether this cache is empty.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| ------- | ---------------------------------------- |
| boolean | Returns **true** if the cache does not contain any value.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
let result = pro.isEmpty();
```
### get9+
get(key: K): V | undefined
Obtains the value of the specified key.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description |
| ------ | ---- | ---- | ------------ |
| key | K | Yes | Key based on which the value is queried.|
**Return value**
| Type | Description |
| ------------------------ | ------------------------------------------------------------ |
| V \| undefined | Returns the value of the key if a match is found in the cache; returns **undefined** otherwise.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
let result = pro.get(2);
```
### put9+
put(key: K,value: V): V
Adds a key-value pair to this cache.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description |
| ------ | ---- | ---- | -------------------------- |
| key | K | Yes | Key of the key-value pair to add. |
| value | V | Yes | Value of the key-value pair to add.|
**Return value**
| Type| Description |
| ---- | ------------------------------------------------------------ |
| V | Returns the existing value if the key already exists; returns the value added otherwise. If the key or value is null, an exception will be thrown. |
**Example**
```js
let pro = new util.LRUCache();
let result = pro.put(2,10);
```
### values9+
values(): V[]
Obtains all values in this cache, listed from the most to the least recently accessed.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| --------- | ------------------------------------------------------------ |
| V [] | All values in the cache, listed from the most to the least recently accessed.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
pro.put(2,"anhu");
pro.put("afaf","grfb");
let result = pro.values();
```
### keys9+
keys(): K[]
Obtains all keys in this cache, listed from the most to the least recently accessed.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| --------- | ------------------------------------------------------------ |
| K [] | All keys in the cache, listed from the most to the least recently accessed.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
let result = pro.keys();
```
### remove9+
remove(key: K): V | undefined
Removes the specified key and its value from this cache.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description |
| ------ | ---- | ---- | -------------- |
| key | K | Yes | Key to remove.|
**Return value**
| Type | Description |
| ------------------------ | ------------------------------------------------------------ |
| V \| undefined | Returns an **Optional** object containing the removed key-value pair if the key exists in the cache; returns an empty **Optional** object otherwise. If the key is null, an exception will be thrown.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
let result = pro.remove(20);
```
### afterRemoval9+
afterRemoval(isEvict: boolean,key: K,value: V,newValue: V): void
Performs subsequent operations after a value is removed.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ------- | ---- | ------------------------------------------------------------ |
| isEvict | boolean | Yes | Whether the cache capacity is insufficient. If the value is **true**, this API is called due to insufficient capacity. |
| key | K | Yes | Key removed. |
| value | V | Yes | Value removed. |
| newValue | V | Yes | New value for the key if the **put()** method is called and the key to be added already exists. In other cases, this parameter is left blank.|
**Example**
```js
let arr = [];
class ChildLruBuffer extends util.LRUCache
{
constructor()
{
super();
}
afterRemoval(isEvict, key, value, newValue)
{
if (isEvict === false)
{
arr = [key, value, newValue];
}
}
}
let lru = new ChildLruBuffer();
lru.afterRemoval(false,10,30,null);
```
### contains9+
contains(key: K): boolean
Checks whether this cache contains the specified key.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | ---------------- |
| key | K | Yes | Key to check.|
**Return value**
| Type | Description |
| ------- | ------------------------------------------ |
| boolean | Returns **true** if the cache contains the specified key; returns **false** otherwise.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
let obj = {1:"key"};
let result = pro.contains(obj);
```
### createDefault9+
createDefault(key: K): V
Creates a value if the value of the specified key is not available.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description |
| ------ | ---- | ---- | -------------- |
| key | K | Yes | Key of which the value is missing.|
**Return value**
| Type| Description |
| ---- | ------------------ |
| V | Value of the key.|
**Example**
```js
let pro = new util.LRUCache();
let result = pro.createDefault(50);
```
### entries9+
entries(): IterableIterator<[K,V]>
Obtains a new iterator object that contains all key-value pairs in this object.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| ----------- | -------------------- |
| [K, V] | Iterable array.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
let result = pro.entries();
```
### [Symbol.iterator]9+
[Symbol.iterator]\(): IterableIterator<[K, V]>
Obtains a two-dimensional array in key-value pairs.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| ----------- | ------------------------------ |
| [K, V] | Two-dimensional array in key-value pairs.|
**Example**
```js
let pro = new util.LRUCache();
pro.put(2,10);
let result = pro[Symbol.iterator]();
```
## ScopeComparable8+
The values of the **ScopeComparable** type are used to implement the **compareTo** method. Therefore, ensure that the input parameters are comparable.
**System capability**: SystemCapability.Utils.Lang
### compareTo8+
compareTo(other: ScopeComparable): boolean;
Compares two values and returns a Boolean value.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description |
| ------ | ---- | ---- | -------------- |
| other | [ScopeComparable](#scopecomparable8) | Yes | The other value to be compared with the current value.|
**Return value**
| Type| Description |
| ---- | ------------------ |
| boolean | If the current value is greater than or equal to the input value, **true** is returned. Otherwise, **false** is returned.|
**Example**
Create a class to implement the **compareTo** method. The **Temperature** class is used as an example in the following sample code.
```js
class Temperature{
// If ArkTS is used for development, add the following code:
// private readonly _temp: Temperature;
constructor(value) {
this._temp = value;
}
compareTo(value) {
return this._temp >= value.getTemp();
}
getTemp() {
return this._temp;
}
toString() {
return this._temp.toString();
}
}
```
## ScopeType8+
Defines the type of values in a **Scope** object.
**System capability**: SystemCapability.Utils.Lang
| Type| Description|
| -------- | -------- |
| number | The value type is a number.|
| [ScopeComparable](#scopecomparable8) | The value type is ScopeComparable.|
## ScopeHelper9+
Provides APIs to define the valid range of a field. The constructor of this class creates comparable objects with lower and upper limits.
### constructor9+
constructor(lowerObj: ScopeType, upperObj: ScopeType)
A constructor used to create a **ScopeHelper** object with the specified upper and lower limits.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ------------------------ | ---- | ---------------------- |
| lowerObj | [ScopeType](#scopetype8) | Yes | Lower limit of the **Scope** object.|
| upperObj | [ScopeType](#scopetype8) | Yes | Upper limit of the **Scope** object.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.ScopeHelper(tempLower, tempUpper);
```
### toString9+
toString(): string
Obtains a string representation that contains this **Scope**.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| ------ | -------------------------------------- |
| string | String representation containing the **Scope**.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.toString();
```
### intersect9+
intersect(range: ScopeHelper): ScopeHelper
Obtains the intersection of this **Scope** and the given **Scope**.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ---------------------------- | ---- | ------------------ |
| range | [ScopeHelper](#scopehelper9) | Yes | **Scope** specified.|
**Return value**
| Type | Description |
| ------------------------------ | ------------------------------ |
| [ScopeHelper9+](#scopehelper9) | Intersection of this **Scope** and the given **Scope**.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.ScopeHelper(tempLower, tempUpper);
let tempMiDF = new Temperature(35);
let tempMidS = new Temperature(39);
let rangeFir = new util.ScopeHelper(tempMiDF, tempMidS);
range.intersect(rangeFir);
```
### intersect9+
intersect(lowerObj:ScopeType,upperObj:ScopeType):ScopeHelper
Obtains the intersection of this **Scope** and the given lower and upper limits.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ------------------------ | ---- | ---------------- |
| lowerObj | [ScopeType](#scopetype8) | Yes | Lower limit.|
| upperObj | [ScopeType](#scopetype8) | Yes | Upper limit.|
**Return value**
| Type | Description |
| ---------------------------- | ---------------------------------------- |
| [ScopeHelper](#scopehelper9) | Intersection of this **Scope** and the given lower and upper limits.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let tempMidS = new Temperature(39);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.intersect(tempMiDF, tempMidS);
```
### getUpper9+
getUpper(): ScopeType
Obtains the upper limit of this **Scope**.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| ------------------------ | ---------------------- |
| [ScopeType](#scopetype8) | Upper limit of this **Scope**.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.getUpper();
```
### getLower9+
getLower(): ScopeType
Obtains the lower limit of this **Scope**.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type | Description |
| ------------------------ | ---------------------- |
| [ScopeType](#scopetype8) | Lower limit of this **Scope**.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.getLower();
```
### expand9+
expand(lowerObj: ScopeType,upperObj: ScopeType): ScopeHelper
Obtains the union set of this **Scope** and the given lower and upper limits.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ------------------------ | ---- | ---------------- |
| lowerObj | [ScopeType](#scopetype8) | Yes | Lower limit.|
| upperObj | [ScopeType](#scopetype8) | Yes | Upper limit.|
**Return value**
| Type | Description |
| ---------------------------- | ------------------------------------ |
| [ScopeHelper](#scopehelper9) | Union set of this **Scope** and the given lower and upper limits.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let tempMidS = new Temperature(39);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.expand(tempMiDF, tempMidS);
```
### expand9+
expand(range: ScopeHelper): ScopeHelper
Obtains the union set of this **Scope** and the given **Scope**.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ---------------------------- | ---- | ------------------ |
| range | [ScopeHelper](#scopehelper9) | Yes | **Scope** specified.|
**Return value**
| Type | Description |
| ---------------------------- | ---------------------------------- |
| [ScopeHelper](#scopehelper9) | Union set of this **Scope** and the given **Scope**.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let tempMidS = new Temperature(39);
let range = new util.ScopeHelper(tempLower, tempUpper);
let rangeFir = new util.ScopeHelper(tempMiDF, tempMidS);
let result = range.expand(rangeFir);
```
### expand9+
expand(value: ScopeType): ScopeHelper
Obtains the union set of this **Scope** and the given value.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ------------------------ | ---- | ---------------- |
| value | [ScopeType](#scopetype8) | Yes | Value specified.|
**Return value**
| Type | Description |
| ---------------------------- | -------------------------------- |
| [ScopeHelper](#scopehelper9) | Union set of this **Scope** and the given value.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.expand(tempMiDF);
```
### contains9+
contains(value: ScopeType): boolean
Checks whether a value is within this **Scope**.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ------------------------ | ---- | ---------------- |
| value | [ScopeType](#scopetype8) | Yes | Value specified.|
**Return value**
| Type | Description |
| ------- | --------------------------------------------------- |
| boolean | Returns **true** if the value is within this **Scope**; returns **false** otherwise.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.contains(tempMiDF);
```
### contains9+
contains(range: ScopeHelper): boolean
Checks whether a range is within this **Scope**.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ---------------------------- | ---- | ------------------ |
| range | [ScopeHelper](#scopehelper9) | Yes | **Scope** specified.|
**Return value**
| Type | Description |
| ------- | ----------------------------------------------------- |
| boolean | Returns **true** if the range is within this **Scope**; returns **false** otherwise.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.ScopeHelper(tempLower, tempUpper);
let tempLess = new Temperature(20);
let tempMore = new Temperature(45);
let rangeSec = new util.ScopeHelper(tempLess, tempMore);
let result = range.contains(rangeSec);
```
### clamp9+
clamp(value: ScopeType): ScopeType
Limits a value to this **Scope**.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ------------------------ | ---- | -------------- |
| value | [ScopeType](#scopetype8) | Yes | Value specified.|
**Return value**
| Type | Description |
| ------------------------ | ------------------------------------------------------------ |
| [ScopeType](#scopetype8) | Returns **lowerObj** if the specified value is less than the lower limit; returns **upperObj** if the specified value is greater than the upper limit; returns the specified value if it is within this **Scope**.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let range = new util.ScopeHelper(tempLower, tempUpper);
let result = range.clamp(tempMiDF);
```
## Base64Helper9+
The Base64 encoding table contains 62 characters, which are the uppercase letters (A-Z), lowercase letters (a-z), digits (0-9), and the special characters plus sign (+) and slash (/). During encoding, the original data is divided into groups of three bytes, and each group contains a 6-bit number. Then, the corresponding characters in the Base64 encoding table are used to represent these numbers. If the last group contains only one or two bytes, the equal sign (=) is used for padding.
### constructor9+
constructor()
A constructor used to create a **Base64Helper** instance.
**System capability**: SystemCapability.Utils.Lang
**Example**
```js
let base64 = new util.Base64Helper();
```
### encodeSync9+
encodeSync(src: Uint8Array): Uint8Array
Encodes the input content.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ---------- | ---- | ------------------- |
| src | Uint8Array | Yes | Uint8Array to encode.|
**Return value**
| Type | Description |
| ---------- | ----------------------------- |
| Uint8Array | Uint8Array encoded.|
**Example**
```js
let that = new util.Base64Helper();
let array = new Uint8Array([115,49,51]);
let result = that.encodeSync(array);
```
### encodeToStringSync9+
encodeToStringSync(src: Uint8Array, options?: Type): string
Encodes the input content.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ---------- | ---- | ------------------- |
| src | Uint8Array | Yes | Uint8Array to encode.|
| options10+ | [Type](#type10) | No | Encoding format.
The following values are available:
- **util.Type.BASIC** (default value): The output can contain 64 printable characters, which are the uppercase letters (A-Z), lowercase letters (a-z), digits (0-9), and the special characters plus sign (+) and slash (/). There is no carriage return or line feed character.
- **util.Type.MIME**: The output can contain 64 printable characters, which are the uppercase letters (A-Z), lowercase letters (a-z), digits (0-9), and the special characters plus sign (+) and slash (/). Each line of the output contains a maximum of 76 characters, ended with '\r\n'.|
**Return value**
| Type | Description |
| ------ | -------------------- |
| string | String encoded from the Uint8Array.|
**Example**
```js
let that = new util.Base64Helper();
let array = new Uint8Array([77,97,110,105,115,100,105,115,116,105,110,103,117,105,115,104,101,100,110,111,116,111,110,108,121,98,121,104,105,115,114,101,97,115,111,110,98,117,116,98,121,116,104,105,115,115,105,110,103,117,108,97,114,112,97,115,115,105,111,110,102,114,111,109,111,116,104,101,114,97,110,105,109,97,108,115,119,104,105,99,104,105,115,97,108,117,115,116,111,102,116,104,101,109,105,110,100,101,120,99,101,101,100,115,116,104,101,115,104,111,114,116,118,101,104,101,109,101,110,99,101,111,102,97,110,121,99,97,114,110,97,108,112,108,101,97,115,117,114,101]);
let result = that.encodeToStringSync(array, util.Type.MIME);
```
### decodeSync9+
decodeSync(src: Uint8Array | string, options?: Type): Uint8Array
Decodes the input content.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ------------------------------ | ---- | ----------------------------- |
| src | Uint8Array \| string | Yes | Uint8Array or string to decode.|
| options10+ | [Type](#type10) | No | Encoding format.
The following values are available:
- **util.Type.BASIC** (default value): The input can contain 64 printable characters, which are the uppercase letters (A-Z), lowercase letters (a-z), digits (0-9), and the special characters plus sign (+) and slash (/). There is no carriage return or line feed character.
- **util.Type.MIME**: The input can contain 64 printable characters, which are the uppercase letters (A-Z), lowercase letters (a-z), digits (0-9), and the special characters plus sign (+) and slash (/). Each line of the input contains a maximum of 76 characters, ended with '\r\n'.|
**Return value**
| Type | Description |
| ---------- | ----------------------------- |
| Uint8Array | Uint8Array decoded.|
**Example**
```js
let that = new util.Base64Helper();
let buff = 'TWFuaXNkaXN0aW5ndWlzaGVkbm90b25seWJ5aGlzcmVhc29uYnV0Ynl0aGlzc2luZ3VsYXJwYXNz\r\naW9uZnJvbW90aGVyYW5pbWFsc3doaWNoaXNhbHVzdG9mdGhlbWluZGV4Y2VlZHN0aGVzaG9ydHZl\r\naGVtZW5jZW9mYW55Y2FybmFscGxlYXN1cmU=\r\n';
let result = that.decodeSync(buff, util.Type.MIME);
```
### encode9+
encode(src: Uint8Array): Promise<Uint8Array>
Encodes the input content asynchronously.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ---------- | ---- | ----------------------- |
| src | Uint8Array | Yes | Uint8Array to encode asynchronously.|
**Return value**
| Type | Description |
| ------------------------- | --------------------------------- |
| Promise<Uint8Array> | Uint8Array obtained after asynchronous encoding.|
**Example**
```js
let that = new util.Base64Helper();
let array = new Uint8Array([115,49,51]);
let rarray = new Uint8Array([99,122,69,122]);
that.encode(array).then(val=>{
for (var i = 0; i < rarray.length; i++) {
console.log(val[i].toString())
}
})
```
### encodeToString9+
encodeToString(src: Uint8Array, options?: Type): Promise<string>
Encodes the input content asynchronously.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ---------- | ---- | ----------------------- |
| src | Uint8Array | Yes | Uint8Array to encode asynchronously.|
| options10+ | [Type](#type10) | No | Encoding format.
The following values are available:
- **util.Type.BASIC** (default value): The output can contain 64 printable characters, which are the uppercase letters (A-Z), lowercase letters (a-z), digits (0-9), and the special characters plus sign (+) and slash (/). There is no carriage return or line feed character.
- **util.Type.MIME**: The output can contain 64 printable characters, which are the uppercase letters (A-Z), lowercase letters (a-z), digits (0-9), and the special characters plus sign (+) and slash (/). Each line of the output contains a maximum of 76 characters, ended with '\r\n'.|
**Return value**
| Type | Description |
| --------------------- | ------------------------ |
| Promise<string> | String obtained after asynchronous encoding.|
**Example**
```js
let that = new util.Base64Helper();
let array = new Uint8Array([77,97,110,105,115,100,105,115,116,105,110,103,117,105,115,104,101,100,110,111,116,111,110,108,121,98,121,104,105,115,114,101,97,115,111,110,98,117,116,98,121,116,104,105,115,115,105,110,103,117,108,97,114,112,97,115,115,105,111,110,102,114,111,109,111,116,104,101,114,97,110,105,109,97,108,115,119,104,105,99,104,105,115,97,108,117,115,116,111,102,116,104,101,109,105,110,100,101,120,99,101,101,100,115,116,104,101,115,104,111,114,116,118,101,104,101,109,101,110,99,101,111,102,97,110,121,99,97,114,110,97,108,112,108,101,97,115,117,114,101]);
that.encodeToString(array, util.Type.MIME).then(val=>{
// Add information as required.
})
```
### decode9+
decode(src: Uint8Array | string, options?: Type): Promise<Uint8Array>
Decodes the input content asynchronously.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ------------------------------ | ---- | --------------------------------- |
| src | Uint8Array \| string | Yes | Uint8Array or string to decode asynchronously.|
| options10+ | [Type](#type10) | No | Encoding format.
The following values are available:
- **util.Type.BASIC** (default value): The input can contain 64 printable characters, which are the uppercase letters (A-Z), lowercase letters (a-z), digits (0-9), and the special characters plus sign (+) and slash (/). There is no carriage return or line feed character.
- **util.Type.MIME**: The input can contain 64 printable characters, which are the uppercase letters (A-Z), lowercase letters (a-z), digits (0-9), and the special characters plus sign (+) and slash (/). Each line of the input contains a maximum of 76 characters, ended with '\r\n'.|
**Return value**
| Type | Description |
| ------------------------- | --------------------------------- |
| Promise<Uint8Array> | Uint8Array obtained after asynchronous decoding.|
**Example**
```js
let that = new util.Base64Helper();
let array = 'TWFuaXNkaXN0aW5ndWlzaGVkbm90b25seWJ5aGlzcmVhc29uYnV0Ynl0aGlzc2luZ3VsYXJwYXNz\r\naW9uZnJvbW90aGVyYW5pbWFsc3doaWNoaXNhbHVzdG9mdGhlbWluZGV4Y2VlZHN0aGVzaG9ydHZl\r\naGVtZW5jZW9mYW55Y2FybmFscGxlYXN1cmU=\r\n';
that.decode(array, util.Type.MIME).then(val=>{
// Add information as required.
})
```
## Type10+
Enumerates the Base64 encoding formats.
**System capability**: SystemCapability.Utils.Lang
| Name | Value | Description |
| -------- | ------------------------ | ---------------- |
| BASIC | 0 | Basic format.|
| MIME | 1 | MIME format.|
## types8+
Provides APIs to check different types of built-in objects, such as ArrayBuffer, Map, and Set, so as to avoid exceptions or crashes caused by type errors.
### constructor8+
constructor()
A constructor used to create a **Types** object.
**System capability**: SystemCapability.Utils.Lang
**Example**
```js
let type = new util.types();
```
### isAnyArrayBuffer8+
isAnyArrayBuffer(value: Object): boolean
Checks whether the input value is of the **ArrayBuffer** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **ArrayBuffer** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isAnyArrayBuffer(new ArrayBuffer(0));
```
### isArrayBufferView8+
isArrayBufferView(value: Object): boolean
Checks whether the input value is of the **ArrayBufferView** type.
**ArrayBufferView** is a helper type representing any of the following: **Int8Array**, **Int16Array**, **Int32Array**, **Uint8Array**, **Uint8ClampedArray**, **Uint32Array**, **Float32Array**, **Float64Array**, and **DataView**.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **ArrayBufferView** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isArrayBufferView(new Int8Array([]));
```
### isArgumentsObject8+
isArgumentsObject(value: Object): boolean
Checks whether the input value is of the **arguments** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **arguments** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
function foo() {
var result = that.isArgumentsObject(arguments);
}
let f = foo();
```
### isArrayBuffer8+
isArrayBuffer(value: Object): boolean
Checks whether the input value is of the **ArrayBuffer** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **ArrayBuffer** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isArrayBuffer(new ArrayBuffer(0));
```
### isAsyncFunction8+
isAsyncFunction(value: Object): boolean
Checks whether the input value is an asynchronous function.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is an asynchronous function; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isAsyncFunction(async function foo() {});
```
### isBooleanObject8+
isBooleanObject(value: Object): boolean
Checks whether the input value is of the **Boolean** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Boolean** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isBooleanObject(new Boolean(true));
```
### isBoxedPrimitive8+
isBoxedPrimitive(value: Object): boolean
Checks whether the input value is of the **Boolean**, **Number**, **String**, or **Symbol** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Boolean**, **Number**, **String**, or **Symbol** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isBoxedPrimitive(new Boolean(false));
```
### isDataView8+
isDataView(value: Object): boolean
Checks whether the input value is of the **DataView** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **DataView** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
const ab = new ArrayBuffer(20);
let result = that.isDataView(new DataView(ab));
```
### isDate8+
isDate(value: Object): boolean
Checks whether the input value is of the **Date** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Date** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isDate(new Date());
```
### isExternal8+
isExternal(value: Object): boolean
Checks whether the input value is of the **native external** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **native external** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isExternal(true);
```
### isFloat32Array8+
isFloat32Array(value: Object): boolean
Checks whether the input value is of the **Float32Array** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Float32Array** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isFloat32Array(new Float32Array());
```
### isFloat64Array8+
isFloat64Array(value: Object): boolean
Checks whether the input value is of the **Float64Array** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Float64Array** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isFloat64Array(new Float64Array());
```
### isGeneratorFunction8+
isGeneratorFunction(value: Object): boolean
Checks whether the input value is a generator function.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is a generator function; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isGeneratorFunction(function* foo() {});
```
### isGeneratorObject8+
isGeneratorObject(value: Object): boolean
Checks whether the input value is a generator object.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is a generator object; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
function* foo() {}
const generator = foo();
let result = that.isGeneratorObject(generator);
```
### isInt8Array8+
isInt8Array(value: Object): boolean
Checks whether the input value is of the **Int8Array** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Int8Array** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isInt8Array(new Int8Array([]));
```
### isInt16Array8+
isInt16Array(value: Object): boolean
Checks whether the input value is of the **Int16Array** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Int16Array** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isInt16Array(new Int16Array([]));
```
### isInt32Array8+
isInt32Array(value: Object): boolean
Checks whether the input value is of the **Int32Array** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Int32Array** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isInt32Array(new Int32Array([]));
```
### isMap8+
isMap(value: Object): boolean
Checks whether the input value is of the **Map** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Map** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isMap(new Map());
```
### isMapIterator8+
isMapIterator(value: Object): boolean
Checks whether the input value is of the **MapIterator** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **MapIterator** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
const map = new Map();
let result = that.isMapIterator(map.keys());
```
### isNativeError8+
isNativeError(value: Object): boolean
Checks whether the input value is of the **Error** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Error** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isNativeError(new TypeError());
```
### isNumberObject8+
isNumberObject(value: Object): boolean
Checks whether the input value is a number object.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is a number object; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isNumberObject(new Number(0));
```
### isPromise8+
isPromise(value: Object): boolean
Checks whether the input value is a promise.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is a promise; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isPromise(Promise.resolve(1));
```
### isProxy8+
isProxy(value: Object): boolean
Checks whether the input value is a proxy.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is a proxy; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
const target = {};
const proxy = new Proxy(target, {});
let result = that.isProxy(proxy);
```
### isRegExp8+
isRegExp(value: Object): boolean
Checks whether the input value is of the **RegExp** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **RegExp** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isRegExp(new RegExp('abc'));
```
### isSet8+
isSet(value: Object): boolean
Checks whether the input value is of the **Set** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Set** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isSet(new Set());
```
### isSetIterator8+
isSetIterator(value: Object): boolean
Checks whether the input value is of the **SetIterator** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **SetIterator** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
const set = new Set();
let result = that.isSetIterator(set.keys());
```
### isStringObject8+
isStringObject(value: Object): boolean
Checks whether the input value is a string object.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is a string object; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isStringObject(new String('foo'));
```
### isSymbolObjec8+
isSymbolObject(value: Object): boolean
Checks whether the input value is a symbol object.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is a symbol object; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
const symbols = Symbol('foo');
let result = that.isSymbolObject(Object(symbols));
```
### isTypedArray8+
isTypedArray(value: Object): boolean
Checks whether the input value is of the **TypedArray** type.
**TypedArray** is a helper type representing any of the following: **Int8Array**, **Int16Array**, **Int32Array**, **Uint8Array**, **Uint8ClampedArray**, **Uint16Array**, **Uint32Array**, **Float32Array**, **Float64Array**, and **DataView**.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **TypedArray** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isTypedArray(new Float64Array([]));
```
### isUint8Array8+
isUint8Array(value: Object): boolean
Checks whether the input value is of the **Uint8Array** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Uint8Array** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isUint8Array(new Uint8Array([]));
```
### isUint8ClampedArray8+
isUint8ClampedArray(value: Object): boolean
Checks whether the input value is of the **Uint8ClampedArray** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Uint8ClampedArray** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isUint8ClampedArray(new Uint8ClampedArray([]));
```
### isUint16Array8+
isUint16Array(value: Object): boolean
Checks whether the input value is of the **Uint16Array** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Uint16Array** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isUint16Array(new Uint16Array([]));
```
### isUint32Array8+
isUint32Array(value: Object): boolean
Checks whether the input value is of the **Uint32Array** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **Uint32Array** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isUint32Array(new Uint32Array([]));
```
### isWeakMap8+
isWeakMap(value: Object): boolean
Checks whether the input value is of the **WeakMap** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **WeakMap** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isWeakMap(new WeakMap());
```
### isWeakSet8+
isWeakSet(value: Object): boolean
Checks whether the input value is of the **WeakSet** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **WeakSet** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isWeakSet(new WeakSet());
```
### isBigInt64Array8+
isBigInt64Array(value: Object): boolean
Checks whether the input value is of the **BigInt64Array** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **BigInt64Array** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isBigInt64Array(new BigInt64Array([]));
```
### isBigUint64Array8+
isBigUint64Array(value: Object): boolean
Checks whether the input value is of the **BigUint64Array** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **BigUint64Array** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isBigUint64Array(new BigUint64Array([]));
```
### isModuleNamespaceObject8+
isModuleNamespaceObject(value: Object): boolean
Checks whether the input value is a module namespace object.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is a module namespace object; returns **false** otherwise.|
**Example**
```js
import url from '@ohos.url'
let that = new util.types();
let result = that.isModuleNamespaceObject(url);
```
### isSharedArrayBuffer8+
isSharedArrayBuffer(value: Object): boolean
Checks whether the input value is of the **SharedArrayBuffer** type.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | Object | Yes| Object to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the input value is of the **SharedArrayBuffer** type; returns **false** otherwise.|
**Example**
```js
let that = new util.types();
let result = that.isSharedArrayBuffer(new SharedArrayBuffer(0));
```
## LruBuffer(deprecated)
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache9+](#lrucache9) instead.
### Attributes
**System capability**: SystemCapability.Utils.Lang
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
| length | number | Yes| No| Total number of values in this buffer.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
pro.put(1,8);
let result = pro.length;
```
### constructor(deprecated)
constructor(capacity?: number)
A constructor used to create a **LruBuffer** instance. The default capacity of the buffer is 64.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.constructor9+](#constructor9-3) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| capacity | number | No| Capacity of the **LruBuffer** to create. The default value is **64**.|
**Example**
```js
let lrubuffer= new util.LruBuffer();
```
### updateCapacity(deprecated)
updateCapacity(newCapacity: number): void
Changes the **LruBuffer** capacity. If the new capacity is less than or equal to **0**, an exception will be thrown.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.updateCapacity9+](#updatecapacity9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| newCapacity | number | Yes| New capacity of the **LruBuffer**.|
**Example**
```js
let pro = new util.LruBuffer();
let result = pro.updateCapacity(100);
```
### toString(deprecated)
toString(): string
Obtains the string representation of this **LruBuffer** object.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.toString9+](#tostring9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| string | String representation of this **LruBuffer** object.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
pro.get(2);
pro.remove(20);
let result = pro.toString();
```
### getCapacity(deprecated)
getCapacity(): number
Obtains the capacity of this buffer.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.getCapacity9+](#getcapacity9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| number | Capacity of this buffer.|
**Example**
```js
let pro = new util.LruBuffer();
let result = pro.getCapacity();
```
### clear(deprecated)
clear(): void
Clears key-value pairs from this buffer. The **afterRemoval()** method will be called to perform subsequent operations.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.clear9+](#clear9) instead.
**System capability**: SystemCapability.Utils.Lang
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
let result = pro.length;
pro.clear();
```
### getCreateCount(deprecated)
getCreateCount(): number
Obtains the number of return values for **createDefault()**.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.getCreateCount9+](#getcreatecount9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| number | Number of return values for **createDefault()**.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(1,8);
let result = pro.getCreateCount();
```
### getMissCount(deprecated)
getMissCount(): number
Obtains the number of times that the queried values are mismatched.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.getMissCount9+](#getmisscount9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| number | Number of times that the queried values are mismatched.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
pro.get(2);
let result = pro.getMissCount();
```
### getRemovalCount(deprecated)
getRemovalCount(): number
Obtains the number of removals from this buffer.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.getRemovalCount9+](#getremovalcount9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| number | Number of removals from the buffer.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
pro.updateCapacity(2);
pro.put(50,22);
let result = pro.getRemovalCount();
```
### getMatchCount(deprecated)
getMatchCount(): number
Obtains the number of times that the queried values are matched.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.getMatchCount9+](#getmatchcount9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| number | Number of times that the queried values are matched.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
pro.get(2);
let result = pro.getMatchCount();
```
### getPutCount(deprecated)
getPutCount(): number
Obtains the number of additions to this buffer.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.getPutCount9+](#getputcount9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| number | Number of additions to the buffer.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
let result = pro.getPutCount();
```
### isEmpty(deprecated)
isEmpty(): boolean
Checks whether this buffer is empty.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.isEmpty9+](#isempty9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the buffer does not contain any value.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
let result = pro.isEmpty();
```
### get(deprecated)
get(key: K): V | undefined
Obtains the value of the specified key.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.get9+](#get9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| key | K | Yes| Key based on which the value is queried.|
**Return value**
| Type| Description|
| -------- | -------- |
| V \| undefined | Returns the value of the key if a match is found in the buffer; returns **undefined** otherwise.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
let result = pro.get(2);
```
### put(deprecated)
put(key: K,value: V): V
Adds a key-value pair to this buffer.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.put9+](#put9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| key | K | Yes| Key of the key-value pair to add.|
| value | V | Yes| Value of the key-value pair to add.|
**Return value**
| Type| Description|
| -------- | -------- |
| V | Returns the existing value if the key already exists; returns the value added otherwise. If the key or value is null, an exception will be thrown. |
**Example**
```js
let pro = new util.LruBuffer();
let result = pro.put(2,10);
```
### values(deprecated)
values(): V[]
Obtains all values in this buffer, listed from the most to the least recently accessed.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.values9+](#values9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| V [] | All values in the buffer, listed from the most to the least recently accessed.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
pro.put(2,"anhu");
pro.put("afaf","grfb");
let result = pro.values();
```
### keys(deprecated)
keys(): K[]
Obtains all keys in this buffer, listed from the most to the least recently accessed.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.keys9+](#keys9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| K [] | All keys in the buffer, listed from the most to the least recently accessed.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
let result = pro.keys();
```
### remove(deprecated)
remove(key: K): V | undefined
Removes the specified key and its value from this buffer.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.remove9+](#remove9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| key | K | Yes| Key to remove.|
**Return value**
| Type| Description|
| -------- | -------- |
| V \| undefined | Returns an **Optional** object containing the removed key-value pair if the key exists in the buffer; returns an empty **Optional** object otherwise. If the key is null, an exception will be thrown.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
let result = pro.remove(20);
```
### afterRemoval(deprecated)
afterRemoval(isEvict: boolean,key: K,value: V,newValue: V): void
Performs subsequent operations after a value is removed.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.afterRemoval9+](#afterremoval9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| isEvict | boolean | Yes| Whether the buffer capacity is insufficient. If the value is **true**, this API is called due to insufficient capacity.|
| key | K | Yes| Key removed.|
| value | V | Yes| Value removed.|
| newValue | V | Yes| New value for the key if the **put()** method is called and the key to be added already exists. In other cases, this parameter is left blank.|
**Example**
```js
let arr = [];
class ChildLruBuffer extends util.LruBuffer
{
constructor()
{
super();
}
afterRemoval(isEvict, key, value, newValue)
{
if (isEvict === false)
{
arr = [key, value, newValue];
}
}
}
let lru = new ChildLruBuffer();
lru.afterRemoval(false,10,30,null);
```
### contains(deprecated)
contains(key: K): boolean
Checks whether this buffer contains the specified key.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.contains9+](#contains9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| key | K | Yes| Key to check.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the buffer contains the specified key; returns **false** otherwise.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
let result = pro.contains(20);
```
### createDefault(deprecated)
createDefault(key: K): V
Creates a value if the value of the specified key is not available.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.createDefault9+](#createdefault9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| key | K | Yes| Key of which the value is missing.|
**Return value**
| Type| Description|
| -------- | -------- |
| V | Value of the key.|
**Example**
```js
let pro = new util.LruBuffer();
let result = pro.createDefault(50);
```
### entries(deprecated)
entries(): IterableIterator<[K,V]>
Obtains a new iterator object that contains all key-value pairs in this object.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.entries9+](#entries9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| [K, V] | Iterable array.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
let result = pro.entries();
```
### [Symbol.iterator](deprecated)
[Symbol.iterator]\(): IterableIterator<[K, V]>
Obtains a two-dimensional array in key-value pairs.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache.Symbol.iterator9+](#symboliterator9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| [K, V] | Two-dimensional array in key-value pairs.|
**Example**
```js
let pro = new util.LruBuffer();
pro.put(2,10);
let result = pro[Symbol.iterator]();
```
## Scope(deprecated)
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper9+](#scopehelper9) instead.
### constructor(deprecated)
constructor(lowerObj: ScopeType, upperObj: ScopeType)
A constructor used to create a **Scope** object with the specified upper and lower limits.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper.constructor9+](#constructor9-4) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| lowerObj | [ScopeType](#scopetype8) | Yes| Lower limit of the **Scope** object.|
| upperObj | [ScopeType](#scopetype8) | Yes| Upper limit of the **Scope** object.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.Scope(tempLower, tempUpper);
```
### toString(deprecated)
toString(): string
Obtains a string representation that contains this **Scope**.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper.toString9+](#tostring9-1) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| string | String representation containing the **Scope**.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.Scope(tempLower, tempUpper);
let result = range.toString();
```
### intersect(deprecated)
intersect(range: Scope): Scope
Obtains the intersection of this **Scope** and the given **Scope**.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper.intersect9+](#intersect9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| range | [Scope](#scopedeprecated) | Yes| **Scope** specified.|
**Return value**
| Type| Description|
| -------- | -------- |
| [Scope](#scopedeprecated) | Intersection of this **Scope** and the given **Scope**.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.Scope(tempLower, tempUpper);
let tempMiDF = new Temperature(35);
let tempMidS = new Temperature(39);
let rangeFir = new util.Scope(tempMiDF, tempMidS);
range.intersect(rangeFir );
```
### intersect(deprecated)
intersect(lowerObj:ScopeType,upperObj:ScopeType):Scope
Obtains the intersection of this **Scope** and the given lower and upper limits.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper.intersect9+](#intersect9-1) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| lowerObj | [ScopeType](#scopetype8) | Yes| Lower limit.|
| upperObj | [ScopeType](#scopetype8) | Yes| Upper limit.|
**Return value**
| Type| Description|
| -------- | -------- |
| [Scope](#scopedeprecated) | Intersection of this **Scope** and the given lower and upper limits.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let tempMidS = new Temperature(39);
let range = new util.Scope(tempLower, tempUpper);
let result = range.intersect(tempMiDF, tempMidS);
```
### getUpper(deprecated)
getUpper(): ScopeType
Obtains the upper limit of this **Scope**.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper.getUpper9+](#getupper9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| [ScopeType](#scopetype8) | Upper limit of this **Scope**.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.Scope(tempLower, tempUpper);
let result = range.getUpper();
```
### getLower(deprecated)
getLower(): ScopeType
Obtains the lower limit of this **Scope**.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper.getLower9+](#getlower9) instead.
**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
| [ScopeType](#scopetype8) | Lower limit of this **Scope**.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.Scope(tempLower, tempUpper);
let result = range.getLower();
```
### expand(deprecated)
expand(lowerObj: ScopeType,upperObj: ScopeType): Scope
Obtains the union set of this **Scope** and the given lower and upper limits.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper.expand9+](#expand9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| lowerObj | [ScopeType](#scopetype8) | Yes| Lower limit.|
| upperObj | [ScopeType](#scopetype8) | Yes| Upper limit.|
**Return value**
| Type| Description|
| -------- | -------- |
| [Scope](#scopedeprecated) | Union set of this **Scope** and the given lower and upper limits.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let tempMidS = new Temperature(39);
let range = new util.Scope(tempLower, tempUpper);
let result = range.expand(tempMiDF, tempMidS);
```
### expand(deprecated)
expand(range: Scope): Scope
Obtains the union set of this **Scope** and the given **Scope**.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper.expand9+](#expand9-1) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| range | [Scope](#scopedeprecated) | Yes| **Scope** specified.|
**Return value**
| Type| Description|
| -------- | -------- |
| [Scope](#scopedeprecated) | Union set of this **Scope** and the given **Scope**.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let tempMidS = new Temperature(39);
let range = new util.Scope(tempLower, tempUpper);
let rangeFir = new util.Scope(tempMiDF, tempMidS);
let result = range.expand(rangeFir);
```
### expand(deprecated)
expand(value: ScopeType): Scope
Obtains the union set of this **Scope** and the given value.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper.expand9+](#expand9-2) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | [ScopeType](#scopetype8) | Yes| Value specified.|
**Return value**
| Type| Description|
| -------- | -------- |
| [Scope](#scopedeprecated) | Union set of this **Scope** and the given value.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let range = new util.Scope(tempLower, tempUpper);
let result = range.expand(tempMiDF);
```
### contains(deprecated)
contains(value: ScopeType): boolean
Checks whether a value is within this **Scope**.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper.contains9+](#contains9-1) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | [ScopeType](#scopetype8) | Yes| Value specified.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the value is within this **Scope**; returns **false** otherwise.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let range = new util.Scope(tempLower, tempUpper);
range.contains(tempMiDF);
```
### contains(deprecated)
contains(range: Scope): boolean
Checks whether a range is within this **Scope**.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper.contains9+](#contains9-2) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| range | [Scope](#scopedeprecated) | Yes| **Scope** specified.|
**Return value**
| Type| Description|
| -------- | -------- |
| boolean | Returns **true** if the range is within this **Scope**; returns **false** otherwise.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let range = new util.Scope(tempLower, tempUpper);
let tempLess = new Temperature(20);
let tempMore = new Temperature(45);
let rangeSec = new util.Scope(tempLess, tempMore);
let result = range.contains(rangeSec);
```
### clamp(deprecated)
clamp(value: ScopeType): ScopeType
Limits a value to this **Scope**.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper.clamp9+](#clamp9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | [ScopeType](#scopetype8) | Yes| Value specified.|
**Return value**
| Type| Description|
| -------- | -------- |
| [ScopeType](#scopetype8) | Returns **lowerObj** if the specified value is less than the lower limit; returns **upperObj** if the specified value is greater than the upper limit; returns the specified value if it is within this **Scope**.|
**Example**
```js
let tempLower = new Temperature(30);
let tempUpper = new Temperature(40);
let tempMiDF = new Temperature(35);
let range = new util.Scope(tempLower, tempUpper);
let result = range.clamp(tempMiDF);
```
## Base64(deprecated)
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [Base64Helper9+](#base64helper9) instead.
### constructor(deprecated)
constructor()
A constructor used to create a **Base64** object.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [Base64Helper.constructor9+](#constructor9-5) instead.
**System capability**: SystemCapability.Utils.Lang
**Example**
```js
let base64 = new util.Base64();
```
### encodeSync(deprecated)
encodeSync(src: Uint8Array): Uint8Array
Encodes the input content.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [Base64Helper.encodeSync9+](#encodesync9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| src | Uint8Array | Yes| Uint8Array to encode.|
**Return value**
| Type| Description|
| -------- | -------- |
| Uint8Array | Uint8Array encoded.|
**Example**
```js
let that = new util.Base64();
let array = new Uint8Array([115,49,51]);
let result = that.encodeSync(array);
```
### encodeToStringSync(deprecated)
encodeToStringSync(src: Uint8Array): string
Encodes the input content.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [Base64Helper.encodeToStringSync9+](#encodetostringsync9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| src | Uint8Array | Yes| Uint8Array to encode.|
**Return value**
| Type| Description|
| -------- | -------- |
| string | String encoded from the Uint8Array.|
**Example**
```js
let that = new util.Base64();
let array = new Uint8Array([115,49,51]);
let result = that.encodeToStringSync(array);
```
### decodeSync(deprecated)
decodeSync(src: Uint8Array | string): Uint8Array
Decodes the input content.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [Base64Helper.decodeSync9+](#decodesync9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| src | Uint8Array \| string | Yes| Uint8Array or string to decode.|
**Return value**
| Type| Description|
| -------- | -------- |
| Uint8Array | Uint8Array decoded.|
**Example**
```js
let that = new util.Base64();
let buff = 'czEz';
let result = that.decodeSync(buff);
```
### encode(deprecated)
encode(src: Uint8Array): Promise<Uint8Array>
Encodes the input content asynchronously.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [Base64Helper.encode9+](#encode9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| src | Uint8Array | Yes| Uint8Array to encode asynchronously.|
**Return value**
| Type| Description|
| -------- | -------- |
| Promise<Uint8Array> | Uint8Array obtained after asynchronous encoding.|
**Example**
```js
let that = new util.Base64();
let array = new Uint8Array([115,49,51]);
let rarray = new Uint8Array([99,122,69,122]);
that.encode(array).then(val=>{
for (var i = 0; i < rarray.length; i++) {
console.log(val[i].toString())
}
})
```
### encodeToString(deprecated)
encodeToString(src: Uint8Array): Promise<string>
Encodes the input content asynchronously.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [Base64Helper.encodeToString9+](#encodetostring9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| src | Uint8Array | Yes| Uint8Array to encode asynchronously.|
**Return value**
| Type| Description|
| -------- | -------- |
| Promise<string> | String obtained after asynchronous encoding.|
**Example**
```js
let that = new util.Base64();
let array = new Uint8Array([115,49,51]);
that.encodeToString(array).then(val=>{
console.log(val)
})
```
### decode(deprecated)
decode(src: Uint8Array | string): Promise<Uint8Array>
Decodes the input content asynchronously.
> **NOTE**
>
> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [Base64Helper.decode9+](#decode9) instead.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| src | Uint8Array \| string | Yes| Uint8Array or string to decode asynchronously.|
**Return value**
| Type| Description|
| -------- | -------- |
| Promise<Uint8Array> | Uint8Array obtained after asynchronous decoding.|
**Example**
```js
let that = new util.Base64();
let array = new Uint8Array([99,122,69,122]);
let rarray = new Uint8Array([115,49,51]);
that.decode(array).then(val=>{
for (var i = 0; i < rarray.length; i++) {
console.log(val[i].toString())
}
})
```