@rogolev/value 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.prettierignore +4 -4
- package/CHANGELOG.md +68 -56
- package/LICENSE +41 -41
- package/README.md +100 -91
- package/babel.config.json +20 -20
- package/docs/classes/Convert/toArray.md +100 -0
- package/docs/classes/Convert/toAssoc.md +90 -0
- package/docs/classes/Convert/toBool.md +72 -0
- package/docs/classes/Convert/toBoolean.md +72 -0
- package/docs/classes/Convert/toFloat.md +69 -0
- package/docs/classes/Convert/toInt.md +86 -0
- package/docs/classes/Convert/toInteger.md +86 -0
- package/docs/classes/Convert/toList.md +73 -0
- package/docs/classes/Convert/toObject.md +76 -0
- package/docs/classes/Convert/toString.md +125 -0
- package/docs/classes/Convert.md +44 -0
- package/docs/classes/Type/isArray.md +106 -0
- package/docs/classes/Type/isAssoc.md +57 -0
- package/docs/classes/Type/isBigInt.md +49 -0
- package/docs/classes/Type/isBool.md +51 -0
- package/docs/classes/Type/isBoolean.md +51 -0
- package/docs/classes/Type/isClass.md +60 -0
- package/docs/classes/Type/isEmpty.md +53 -0
- package/docs/classes/Type/isFloat.md +77 -0
- package/docs/classes/Type/isFunction.md +64 -0
- package/docs/classes/Type/isInfinity.md +59 -0
- package/docs/classes/Type/isInt.md +77 -0
- package/docs/classes/Type/isInteger.md +77 -0
- package/docs/classes/Type/isList.md +49 -0
- package/docs/classes/Type/isNaN.md +57 -0
- package/docs/classes/Type/isNull.md +49 -0
- package/docs/classes/Type/isNumber.md +60 -0
- package/docs/classes/Type/isNumeric.md +58 -0
- package/docs/classes/Type/isObject.md +53 -0
- package/docs/classes/Type/isScalar.md +54 -0
- package/docs/classes/Type/isString.md +54 -0
- package/docs/classes/Type/isSymbol.md +56 -0
- package/docs/classes/Type/isUndefined.md +52 -0
- package/docs/classes/Type.md +74 -0
- package/docs/classes.md +9 -0
- package/docs/helpers/array.md +80 -80
- package/docs/helpers/empty.md +77 -77
- package/docs/helpers/gettype.md +69 -69
- package/docs/helpers/is_array.md +105 -105
- package/docs/helpers/is_assoc.md +59 -59
- package/docs/helpers/is_bigint.md +57 -57
- package/docs/helpers/is_bool.md +50 -50
- package/docs/helpers/is_boolean.md +50 -50
- package/docs/helpers/is_class.md +73 -73
- package/docs/helpers/is_float.md +71 -71
- package/docs/helpers/is_function.md +62 -62
- package/docs/helpers/is_infinity.md +61 -61
- package/docs/helpers/is_int.md +81 -81
- package/docs/helpers/is_integer.md +82 -82
- package/docs/helpers/is_list.md +51 -51
- package/docs/helpers/is_nan.md +59 -59
- package/docs/helpers/is_null.md +49 -49
- package/docs/helpers/is_number.md +67 -67
- package/docs/helpers/is_numeric.md +76 -76
- package/docs/helpers/is_object.md +69 -69
- package/docs/helpers/is_scalar.md +60 -60
- package/docs/helpers/is_string.md +58 -58
- package/docs/helpers/is_symbol.md +58 -58
- package/docs/helpers/is_undefined.md +56 -56
- package/docs/helpers/print.md +187 -187
- package/docs/helpers/print_type.md +225 -225
- package/docs/helpers/settype.md +78 -78
- package/docs/helpers/to_array.md +106 -106
- package/docs/helpers/to_assoc.md +91 -91
- package/docs/helpers/to_bool.md +76 -76
- package/docs/helpers/to_boolean.md +77 -77
- package/docs/helpers/to_float.md +70 -70
- package/docs/helpers/to_int.md +87 -87
- package/docs/helpers/to_integer.md +87 -87
- package/docs/helpers/to_list.md +47 -47
- package/docs/helpers/to_object.md +76 -76
- package/docs/helpers/to_string.md +134 -134
- package/docs/helpers.md +51 -51
- package/docs/types/NaN.md +30 -30
- package/docs/types/array.md +252 -252
- package/docs/types/bigint.md +34 -34
- package/docs/types/boolean.md +47 -47
- package/docs/types/class.md +36 -36
- package/docs/types/float.md +35 -35
- package/docs/types/function.md +121 -121
- package/docs/types/infinity.md +32 -32
- package/docs/types/integer.md +35 -35
- package/docs/types/null.md +23 -23
- package/docs/types/object.md +62 -62
- package/docs/types/string.md +33 -33
- package/docs/types/symbol.md +29 -29
- package/docs/types/undefined.md +25 -25
- package/docs/types.md +44 -44
- package/eslint.config.mjs +1664 -1664
- package/index.mjs +40 -37
- package/jest.config.mjs +31 -31
- package/package.json +48 -47
- package/prettier.config.mjs +224 -224
- package/src/classes/Convert.mjs +819 -0
- package/src/classes/Type.mjs +1285 -0
- package/src/helpers/array.mjs +107 -107
- package/src/helpers/empty.mjs +70 -70
- package/src/helpers/gettype.mjs +133 -133
- package/src/helpers/is_array.mjs +128 -128
- package/src/helpers/is_assoc.mjs +51 -51
- package/src/helpers/is_bigint.mjs +47 -47
- package/src/helpers/is_bool.mjs +43 -43
- package/src/helpers/is_boolean.mjs +43 -43
- package/src/helpers/is_class.mjs +87 -87
- package/src/helpers/is_float.mjs +67 -67
- package/src/helpers/is_function.mjs +74 -74
- package/src/helpers/is_infinity.mjs +52 -52
- package/src/helpers/is_int.mjs +57 -57
- package/src/helpers/is_integer.mjs +74 -74
- package/src/helpers/is_list.mjs +43 -43
- package/src/helpers/is_nan.mjs +51 -51
- package/src/helpers/is_null.mjs +37 -37
- package/src/helpers/is_number.mjs +49 -49
- package/src/helpers/is_numeric.mjs +64 -64
- package/src/helpers/is_object.mjs +72 -72
- package/src/helpers/is_scalar.mjs +45 -45
- package/src/helpers/is_string.mjs +46 -46
- package/src/helpers/is_symbol.mjs +46 -46
- package/src/helpers/is_undefined.mjs +44 -44
- package/src/helpers/print.mjs +245 -245
- package/src/helpers/print_type.mjs +261 -261
- package/src/helpers/settype.mjs +101 -101
- package/src/helpers/to_array.mjs +118 -118
- package/src/helpers/to_assoc.mjs +98 -98
- package/src/helpers/to_bool.mjs +68 -68
- package/src/helpers/to_boolean.mjs +64 -64
- package/src/helpers/to_float.mjs +72 -72
- package/src/helpers/to_int.mjs +93 -93
- package/src/helpers/to_integer.mjs +81 -81
- package/src/helpers/to_list.mjs +56 -56
- package/src/helpers/to_object.mjs +94 -94
- package/src/helpers/to_string.mjs +157 -157
- package/tests/classes/Convert.test.mjs +399 -0
- package/tests/classes/Type.test.mjs +1263 -0
- package/tests/helpers/array.test.mjs +58 -58
- package/tests/helpers/empty.test.mjs +22 -22
- package/tests/helpers/gettype.test.mjs +74 -74
- package/tests/helpers/is_array.test.mjs +404 -404
- package/tests/helpers/is_assoc.test.mjs +42 -42
- package/tests/helpers/is_bigint.test.mjs +51 -51
- package/tests/helpers/is_bool.test.mjs +43 -43
- package/tests/helpers/is_boolean.test.mjs +43 -43
- package/tests/helpers/is_class.test.mjs +84 -84
- package/tests/helpers/is_float.test.mjs +87 -87
- package/tests/helpers/is_function.test.mjs +83 -83
- package/tests/helpers/is_infinity.test.mjs +46 -46
- package/tests/helpers/is_int.test.mjs +45 -45
- package/tests/helpers/is_integer.test.mjs +64 -64
- package/tests/helpers/is_list.test.mjs +42 -42
- package/tests/helpers/is_nan.test.mjs +43 -43
- package/tests/helpers/is_null.test.mjs +17 -17
- package/tests/helpers/is_number.test.mjs +25 -25
- package/tests/helpers/is_numeric.test.mjs +30 -30
- package/tests/helpers/is_object.test.mjs +52 -52
- package/tests/helpers/is_scalar.test.mjs +21 -21
- package/tests/helpers/is_string.test.mjs +20 -20
- package/tests/helpers/is_symbol.test.mjs +20 -20
- package/tests/helpers/is_undefined.test.mjs +18 -18
- package/tests/helpers/print.test.mjs +62 -62
- package/tests/helpers/print_type.test.mjs +62 -62
- package/tests/helpers/settype.test.mjs +34 -34
- package/tests/helpers/to_array.test.mjs +38 -38
- package/tests/helpers/to_assoc.test.mjs +33 -33
- package/tests/helpers/to_bool.test.mjs +51 -51
- package/tests/helpers/to_boolean.test.mjs +51 -51
- package/tests/helpers/to_float.test.mjs +26 -26
- package/tests/helpers/to_int.test.mjs +48 -48
- package/tests/helpers/to_integer.test.mjs +48 -48
- package/tests/helpers/to_list.test.mjs +32 -32
- package/tests/helpers/to_object.test.mjs +36 -36
- package/tests/helpers/to_string.test.mjs +71 -71
package/docs/helpers/gettype.md
CHANGED
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
[Главная](../../README.md) / [Помощники](../helpers.md) / gettype
|
|
2
|
-
|
|
3
|
-
[Исходный код](../../src/helpers/gettype.mjs)
|
|
4
|
-
|
|
5
|
-
# `gettype`
|
|
6
|
-
|
|
7
|
-
`gettype` — Определяет тип переданного значения.
|
|
8
|
-
|
|
9
|
-
## Сигнатура функции
|
|
10
|
-
|
|
11
|
-
```ts
|
|
12
|
-
function gettype(value: any): string;
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Параметры
|
|
16
|
-
|
|
17
|
-
- `value` (any)
|
|
18
|
-
|
|
19
|
-
Значение, тип которого необходимо определить.
|
|
20
|
-
|
|
21
|
-
## Описание
|
|
22
|
-
|
|
23
|
-
Функция `gettype` определяет тип переданного значения, используя различные проверки.
|
|
24
|
-
|
|
25
|
-
Она выполняет следующие проверки:
|
|
26
|
-
|
|
27
|
-
1. **Null**: Проверяет, является ли значение `null`.
|
|
28
|
-
2. **NaN**: Проверяет, является ли значение `NaN`.
|
|
29
|
-
3. **Undefined**: Проверяет, является ли значение `undefined`.
|
|
30
|
-
4. **Infinity**: Проверяет, является ли значение бесконечностью.
|
|
31
|
-
5. **Boolean**: Проверяет, является ли значение логическим.
|
|
32
|
-
6. **Integer**: Проверяет, является ли значение целым числом.
|
|
33
|
-
7. **BigInt**: Проверяет, является ли значение типом BigInt.
|
|
34
|
-
8. **Float**: Проверяет, является ли значение числом с плавающей точкой.
|
|
35
|
-
9. **String**: Проверяет, является ли значение строкой.
|
|
36
|
-
10. **Symbol**: Проверяет, является ли значение символом.
|
|
37
|
-
11. **Class**: Проверяет, является ли значение классом.
|
|
38
|
-
12. **Function**: Проверяет, является ли значение функцией.
|
|
39
|
-
13. **Array**: Проверяет, является ли значение массивом.
|
|
40
|
-
14. **Object**: Проверяет, является ли значение объектом.
|
|
41
|
-
|
|
42
|
-
Если значение не соответствует ни одному из этих типов, функция возвращает результат `typeof value`.
|
|
43
|
-
|
|
44
|
-
## Возвращаемое значение
|
|
45
|
-
|
|
46
|
-
Функция возвращает строку, представляющую тип значения.
|
|
47
|
-
|
|
48
|
-
## Примеры использования
|
|
49
|
-
|
|
50
|
-
### Пример 1: Проверка различных типов значений
|
|
51
|
-
|
|
52
|
-
```js
|
|
53
|
-
class MyClass {}
|
|
54
|
-
|
|
55
|
-
gettype(null); // "null"
|
|
56
|
-
gettype(NaN); // "NaN"
|
|
57
|
-
gettype(undefined); // "undefined"
|
|
58
|
-
gettype(Infinity); // "infinity"
|
|
59
|
-
gettype(true); // "boolean"
|
|
60
|
-
gettype(42); // "integer"
|
|
61
|
-
gettype(BigInt(123456)); // "bigint"
|
|
62
|
-
gettype(3.14); // "float"
|
|
63
|
-
gettype('hello'); // "string"
|
|
64
|
-
gettype(Symbol('symbol')); // "symbol"
|
|
65
|
-
gettype(MyClass); // "class"
|
|
66
|
-
gettype(() => {}); // "function"
|
|
67
|
-
gettype([]); // "array"
|
|
68
|
-
gettype(new MyClass()); // "object"
|
|
69
|
-
```
|
|
1
|
+
[Главная](../../README.md) / [Помощники](../helpers.md) / gettype
|
|
2
|
+
|
|
3
|
+
[Исходный код](../../src/helpers/gettype.mjs)
|
|
4
|
+
|
|
5
|
+
# `gettype`
|
|
6
|
+
|
|
7
|
+
`gettype` — Определяет тип переданного значения.
|
|
8
|
+
|
|
9
|
+
## Сигнатура функции
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
function gettype(value: any): string;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Параметры
|
|
16
|
+
|
|
17
|
+
- `value` (any)
|
|
18
|
+
|
|
19
|
+
Значение, тип которого необходимо определить.
|
|
20
|
+
|
|
21
|
+
## Описание
|
|
22
|
+
|
|
23
|
+
Функция `gettype` определяет тип переданного значения, используя различные проверки.
|
|
24
|
+
|
|
25
|
+
Она выполняет следующие проверки:
|
|
26
|
+
|
|
27
|
+
1. **Null**: Проверяет, является ли значение `null`.
|
|
28
|
+
2. **NaN**: Проверяет, является ли значение `NaN`.
|
|
29
|
+
3. **Undefined**: Проверяет, является ли значение `undefined`.
|
|
30
|
+
4. **Infinity**: Проверяет, является ли значение бесконечностью.
|
|
31
|
+
5. **Boolean**: Проверяет, является ли значение логическим.
|
|
32
|
+
6. **Integer**: Проверяет, является ли значение целым числом.
|
|
33
|
+
7. **BigInt**: Проверяет, является ли значение типом BigInt.
|
|
34
|
+
8. **Float**: Проверяет, является ли значение числом с плавающей точкой.
|
|
35
|
+
9. **String**: Проверяет, является ли значение строкой.
|
|
36
|
+
10. **Symbol**: Проверяет, является ли значение символом.
|
|
37
|
+
11. **Class**: Проверяет, является ли значение классом.
|
|
38
|
+
12. **Function**: Проверяет, является ли значение функцией.
|
|
39
|
+
13. **Array**: Проверяет, является ли значение массивом.
|
|
40
|
+
14. **Object**: Проверяет, является ли значение объектом.
|
|
41
|
+
|
|
42
|
+
Если значение не соответствует ни одному из этих типов, функция возвращает результат `typeof value`.
|
|
43
|
+
|
|
44
|
+
## Возвращаемое значение
|
|
45
|
+
|
|
46
|
+
Функция возвращает строку, представляющую тип значения.
|
|
47
|
+
|
|
48
|
+
## Примеры использования
|
|
49
|
+
|
|
50
|
+
### Пример 1: Проверка различных типов значений
|
|
51
|
+
|
|
52
|
+
```js
|
|
53
|
+
class MyClass {}
|
|
54
|
+
|
|
55
|
+
gettype(null); // "null"
|
|
56
|
+
gettype(NaN); // "NaN"
|
|
57
|
+
gettype(undefined); // "undefined"
|
|
58
|
+
gettype(Infinity); // "infinity"
|
|
59
|
+
gettype(true); // "boolean"
|
|
60
|
+
gettype(42); // "integer"
|
|
61
|
+
gettype(BigInt(123456)); // "bigint"
|
|
62
|
+
gettype(3.14); // "float"
|
|
63
|
+
gettype('hello'); // "string"
|
|
64
|
+
gettype(Symbol('symbol')); // "symbol"
|
|
65
|
+
gettype(MyClass); // "class"
|
|
66
|
+
gettype(() => {}); // "function"
|
|
67
|
+
gettype([]); // "array"
|
|
68
|
+
gettype(new MyClass()); // "object"
|
|
69
|
+
```
|
package/docs/helpers/is_array.md
CHANGED
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
[Главная](../../README.md) / [Помощники](../helpers.md) / is_array
|
|
2
|
-
|
|
3
|
-
[Исходный код](../../src/helpers/is_array.mjs)
|
|
4
|
-
|
|
5
|
-
# is_array
|
|
6
|
-
|
|
7
|
-
`is_array` — Проверяет, является ли переданное значение массивом или ассоциативным массивом
|
|
8
|
-
(объектом с ключами и значениями).
|
|
9
|
-
|
|
10
|
-
## Сигнатура функции
|
|
11
|
-
|
|
12
|
-
```ts
|
|
13
|
-
function is_array(value: any): boolean;
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## Описание
|
|
17
|
-
|
|
18
|
-
В JavaScript массивы и объекты имеют разные структуры и предназначения:
|
|
19
|
-
|
|
20
|
-
- Массивы (`Array`) являются упорядоченными коллекциями элементов, которые могут быть индексированы.
|
|
21
|
-
- Объекты (`Object`) содержат пары "ключ-значение", которые могут быть неупорядоченными.
|
|
22
|
-
|
|
23
|
-
Эта функция проверяет, является ли переданное значение обычным массивом (например, `[1, 2, 3]`),
|
|
24
|
-
либо ассоциативным массивом (объектом с парами "ключ-значение", например, `{foo: 'bar'}`).
|
|
25
|
-
|
|
26
|
-
## Алгоритм работы функции
|
|
27
|
-
|
|
28
|
-
1. Сначала проверяется, является ли переданное значение обычным массивом с помощью встроенного
|
|
29
|
-
метода `Array.isArray(value)`. Если это массив, функция сразу возвращает `true`.
|
|
30
|
-
|
|
31
|
-
2. Если переменная не является массивом, то выполняются дополнительные проверки:
|
|
32
|
-
|
|
33
|
-
- Проверяется, что значение не равно `null` (так как `null` в JavaScript также является
|
|
34
|
-
объектом, но не является ни массивом, ни объектом с парами "ключ-значение").
|
|
35
|
-
- Проверяется, что значение является объектом JavaScript (с помощью
|
|
36
|
-
`typeof value === 'object'`).
|
|
37
|
-
- Проверяется, что прототип объекта совпадает с `Object.prototype` (это объект, от которого
|
|
38
|
-
наследуются все объекты в JavaScript) или является `null` (это означает, что объект был создан
|
|
39
|
-
с помощью `Object.create(null)` и не имеет прототипа).
|
|
40
|
-
- Исключаются массивоподобные объекты (например, `arguments`, `NodeList`), путем проверки, что
|
|
41
|
-
свойство `length` не является собственным свойством объекта.
|
|
42
|
-
- Дополнительно проверяется, что объект является простым (его конструктор равен `Object`), а
|
|
43
|
-
также исключаются встроенные объекты (`Math`, `JSON`, `Reflect`, `Intl`), для которых функция
|
|
44
|
-
возвращает `true`.
|
|
45
|
-
|
|
46
|
-
## Параметры
|
|
47
|
-
|
|
48
|
-
- `value` (any)
|
|
49
|
-
|
|
50
|
-
Проверяемая переменная.
|
|
51
|
-
|
|
52
|
-
## Возвращаемое значение
|
|
53
|
-
|
|
54
|
-
Возвращает `true`, если переменная является обычным массивом (`Array`), ассоциативным массивом
|
|
55
|
-
(объектом с парами "ключ-значение"), ассоциативным массивом, созданным с помощью
|
|
56
|
-
`Object.create(null)`. В остальных случаях функция возвращает `false`.
|
|
57
|
-
|
|
58
|
-
## Примеры использования
|
|
59
|
-
|
|
60
|
-
1. Простые массивы:
|
|
61
|
-
|
|
62
|
-
```js
|
|
63
|
-
is_array([1, 2, 3]); // true
|
|
64
|
-
is_array([]); // true
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
2. Ассоциативные массивы (объекты с ключами и значениями):
|
|
68
|
-
|
|
69
|
-
```js
|
|
70
|
-
is_array({ foo: 'bar', baz: 42 }); // true
|
|
71
|
-
is_array({ 0: 'a', 1: 'b' }); // true
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
3. Объекты, созданные без прототипа:
|
|
75
|
-
|
|
76
|
-
```js
|
|
77
|
-
const noProtoObject = Object.create(null);
|
|
78
|
-
noProtoObject.foo = 'bar';
|
|
79
|
-
is_array(noProtoObject); // true
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
4. Примитивы и невалидные значения:
|
|
83
|
-
|
|
84
|
-
```js
|
|
85
|
-
is_array(null); // false
|
|
86
|
-
is_array(undefined); // false
|
|
87
|
-
is_array(42); // false
|
|
88
|
-
is_array('hello'); // false
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
5. Специальные объекты:
|
|
92
|
-
|
|
93
|
-
```js
|
|
94
|
-
is_array(new Map()); // false
|
|
95
|
-
is_array(new Set()); // false
|
|
96
|
-
is_array(() => {}); // false
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
6. Классы и их экземпляры:
|
|
100
|
-
|
|
101
|
-
```js
|
|
102
|
-
class MyClass {}
|
|
103
|
-
const instance = new MyClass();
|
|
104
|
-
is_array(instance); // false
|
|
105
|
-
```
|
|
1
|
+
[Главная](../../README.md) / [Помощники](../helpers.md) / is_array
|
|
2
|
+
|
|
3
|
+
[Исходный код](../../src/helpers/is_array.mjs)
|
|
4
|
+
|
|
5
|
+
# is_array
|
|
6
|
+
|
|
7
|
+
`is_array` — Проверяет, является ли переданное значение массивом или ассоциативным массивом
|
|
8
|
+
(объектом с ключами и значениями).
|
|
9
|
+
|
|
10
|
+
## Сигнатура функции
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
function is_array(value: any): boolean;
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Описание
|
|
17
|
+
|
|
18
|
+
В JavaScript массивы и объекты имеют разные структуры и предназначения:
|
|
19
|
+
|
|
20
|
+
- Массивы (`Array`) являются упорядоченными коллекциями элементов, которые могут быть индексированы.
|
|
21
|
+
- Объекты (`Object`) содержат пары "ключ-значение", которые могут быть неупорядоченными.
|
|
22
|
+
|
|
23
|
+
Эта функция проверяет, является ли переданное значение обычным массивом (например, `[1, 2, 3]`),
|
|
24
|
+
либо ассоциативным массивом (объектом с парами "ключ-значение", например, `{foo: 'bar'}`).
|
|
25
|
+
|
|
26
|
+
## Алгоритм работы функции
|
|
27
|
+
|
|
28
|
+
1. Сначала проверяется, является ли переданное значение обычным массивом с помощью встроенного
|
|
29
|
+
метода `Array.isArray(value)`. Если это массив, функция сразу возвращает `true`.
|
|
30
|
+
|
|
31
|
+
2. Если переменная не является массивом, то выполняются дополнительные проверки:
|
|
32
|
+
|
|
33
|
+
- Проверяется, что значение не равно `null` (так как `null` в JavaScript также является
|
|
34
|
+
объектом, но не является ни массивом, ни объектом с парами "ключ-значение").
|
|
35
|
+
- Проверяется, что значение является объектом JavaScript (с помощью
|
|
36
|
+
`typeof value === 'object'`).
|
|
37
|
+
- Проверяется, что прототип объекта совпадает с `Object.prototype` (это объект, от которого
|
|
38
|
+
наследуются все объекты в JavaScript) или является `null` (это означает, что объект был создан
|
|
39
|
+
с помощью `Object.create(null)` и не имеет прототипа).
|
|
40
|
+
- Исключаются массивоподобные объекты (например, `arguments`, `NodeList`), путем проверки, что
|
|
41
|
+
свойство `length` не является собственным свойством объекта.
|
|
42
|
+
- Дополнительно проверяется, что объект является простым (его конструктор равен `Object`), а
|
|
43
|
+
также исключаются встроенные объекты (`Math`, `JSON`, `Reflect`, `Intl`), для которых функция
|
|
44
|
+
возвращает `true`.
|
|
45
|
+
|
|
46
|
+
## Параметры
|
|
47
|
+
|
|
48
|
+
- `value` (any)
|
|
49
|
+
|
|
50
|
+
Проверяемая переменная.
|
|
51
|
+
|
|
52
|
+
## Возвращаемое значение
|
|
53
|
+
|
|
54
|
+
Возвращает `true`, если переменная является обычным массивом (`Array`), ассоциативным массивом
|
|
55
|
+
(объектом с парами "ключ-значение"), ассоциативным массивом, созданным с помощью
|
|
56
|
+
`Object.create(null)`. В остальных случаях функция возвращает `false`.
|
|
57
|
+
|
|
58
|
+
## Примеры использования
|
|
59
|
+
|
|
60
|
+
1. Простые массивы:
|
|
61
|
+
|
|
62
|
+
```js
|
|
63
|
+
is_array([1, 2, 3]); // true
|
|
64
|
+
is_array([]); // true
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
2. Ассоциативные массивы (объекты с ключами и значениями):
|
|
68
|
+
|
|
69
|
+
```js
|
|
70
|
+
is_array({ foo: 'bar', baz: 42 }); // true
|
|
71
|
+
is_array({ 0: 'a', 1: 'b' }); // true
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
3. Объекты, созданные без прототипа:
|
|
75
|
+
|
|
76
|
+
```js
|
|
77
|
+
const noProtoObject = Object.create(null);
|
|
78
|
+
noProtoObject.foo = 'bar';
|
|
79
|
+
is_array(noProtoObject); // true
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
4. Примитивы и невалидные значения:
|
|
83
|
+
|
|
84
|
+
```js
|
|
85
|
+
is_array(null); // false
|
|
86
|
+
is_array(undefined); // false
|
|
87
|
+
is_array(42); // false
|
|
88
|
+
is_array('hello'); // false
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
5. Специальные объекты:
|
|
92
|
+
|
|
93
|
+
```js
|
|
94
|
+
is_array(new Map()); // false
|
|
95
|
+
is_array(new Set()); // false
|
|
96
|
+
is_array(() => {}); // false
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
6. Классы и их экземпляры:
|
|
100
|
+
|
|
101
|
+
```js
|
|
102
|
+
class MyClass {}
|
|
103
|
+
const instance = new MyClass();
|
|
104
|
+
is_array(instance); // false
|
|
105
|
+
```
|
package/docs/helpers/is_assoc.md
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
[Главная](../../README.md) / [Помощники](../helpers.md) / is_assoc
|
|
2
|
-
|
|
3
|
-
[Исходный код](../../src/helpers/is_assoc.mjs)
|
|
4
|
-
|
|
5
|
-
# `is_assoc`
|
|
6
|
-
|
|
7
|
-
`is_assoc` — Проверяет, является ли значение ассоциативным массивом.
|
|
8
|
-
|
|
9
|
-
## Сигнатура функции
|
|
10
|
-
|
|
11
|
-
```ts
|
|
12
|
-
function is_assoc(value: any): boolean;
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Параметры
|
|
16
|
-
|
|
17
|
-
- `value` (any)
|
|
18
|
-
|
|
19
|
-
Значение, которое необходимо проверить на принадлежность к ассоциативному массиву.
|
|
20
|
-
|
|
21
|
-
## Описание
|
|
22
|
-
|
|
23
|
-
Функция `is_assoc` предназначена для проверки, является ли переданное значение ассоциативным
|
|
24
|
-
массивом.
|
|
25
|
-
|
|
26
|
-
Она использует метод `is_array` для проверки значения и убеждается, что значение не является обычным
|
|
27
|
-
массивом.
|
|
28
|
-
|
|
29
|
-
## Возвращаемое значение
|
|
30
|
-
|
|
31
|
-
Функция возвращает:
|
|
32
|
-
|
|
33
|
-
- `true`, если значение является ассоциативным массивом.
|
|
34
|
-
- `false` в противном случае.
|
|
35
|
-
|
|
36
|
-
## Примеры использования
|
|
37
|
-
|
|
38
|
-
### Пример 1: Проверка ассоциативных массивов
|
|
39
|
-
|
|
40
|
-
```js
|
|
41
|
-
is_assoc({ foo: 'bar' }); // true
|
|
42
|
-
is_assoc({}); // true
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### Пример 2: Проверка обычных массивов
|
|
46
|
-
|
|
47
|
-
```js
|
|
48
|
-
is_assoc([]); // false
|
|
49
|
-
is_assoc([1, 2, 3]); // false
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Пример 3: Проверка значений других типов
|
|
53
|
-
|
|
54
|
-
```js
|
|
55
|
-
is_assoc('string'); // false (строка)
|
|
56
|
-
is_assoc(42); // false (число)
|
|
57
|
-
is_assoc(null); // false
|
|
58
|
-
is_assoc(undefined); // false
|
|
59
|
-
```
|
|
1
|
+
[Главная](../../README.md) / [Помощники](../helpers.md) / is_assoc
|
|
2
|
+
|
|
3
|
+
[Исходный код](../../src/helpers/is_assoc.mjs)
|
|
4
|
+
|
|
5
|
+
# `is_assoc`
|
|
6
|
+
|
|
7
|
+
`is_assoc` — Проверяет, является ли значение ассоциативным массивом.
|
|
8
|
+
|
|
9
|
+
## Сигнатура функции
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
function is_assoc(value: any): boolean;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Параметры
|
|
16
|
+
|
|
17
|
+
- `value` (any)
|
|
18
|
+
|
|
19
|
+
Значение, которое необходимо проверить на принадлежность к ассоциативному массиву.
|
|
20
|
+
|
|
21
|
+
## Описание
|
|
22
|
+
|
|
23
|
+
Функция `is_assoc` предназначена для проверки, является ли переданное значение ассоциативным
|
|
24
|
+
массивом.
|
|
25
|
+
|
|
26
|
+
Она использует метод `is_array` для проверки значения и убеждается, что значение не является обычным
|
|
27
|
+
массивом.
|
|
28
|
+
|
|
29
|
+
## Возвращаемое значение
|
|
30
|
+
|
|
31
|
+
Функция возвращает:
|
|
32
|
+
|
|
33
|
+
- `true`, если значение является ассоциативным массивом.
|
|
34
|
+
- `false` в противном случае.
|
|
35
|
+
|
|
36
|
+
## Примеры использования
|
|
37
|
+
|
|
38
|
+
### Пример 1: Проверка ассоциативных массивов
|
|
39
|
+
|
|
40
|
+
```js
|
|
41
|
+
is_assoc({ foo: 'bar' }); // true
|
|
42
|
+
is_assoc({}); // true
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Пример 2: Проверка обычных массивов
|
|
46
|
+
|
|
47
|
+
```js
|
|
48
|
+
is_assoc([]); // false
|
|
49
|
+
is_assoc([1, 2, 3]); // false
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Пример 3: Проверка значений других типов
|
|
53
|
+
|
|
54
|
+
```js
|
|
55
|
+
is_assoc('string'); // false (строка)
|
|
56
|
+
is_assoc(42); // false (число)
|
|
57
|
+
is_assoc(null); // false
|
|
58
|
+
is_assoc(undefined); // false
|
|
59
|
+
```
|
|
@@ -1,57 +1,57 @@
|
|
|
1
|
-
[Главная](../../README.md) / [Помощники](../helpers.md) / is_bigint
|
|
2
|
-
|
|
3
|
-
[Исходный код](../../src/helpers/is_bigint.mjs)
|
|
4
|
-
|
|
5
|
-
# `is_bigint`
|
|
6
|
-
|
|
7
|
-
`is_bigint` — Проверяет, является ли значение типом `bigint`.
|
|
8
|
-
|
|
9
|
-
## Сигнатура функции
|
|
10
|
-
|
|
11
|
-
```ts
|
|
12
|
-
function is_bigint(value: any): boolean;
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Параметры
|
|
16
|
-
|
|
17
|
-
- `value` (any)
|
|
18
|
-
|
|
19
|
-
Значение, которое необходимо проверить на принадлежность к типу `bigint`.
|
|
20
|
-
|
|
21
|
-
## Описание
|
|
22
|
-
|
|
23
|
-
Функция `is_bigint` предназначена для проверки, является ли переданное значение типом `bigint`.
|
|
24
|
-
|
|
25
|
-
Она проверяет:
|
|
26
|
-
|
|
27
|
-
1. Что значение имеет тип `bigint`.
|
|
28
|
-
|
|
29
|
-
Функция возвращает `false` для значений других типов, таких как числа, строки, объекты или массивы.
|
|
30
|
-
|
|
31
|
-
## Возвращаемое значение
|
|
32
|
-
|
|
33
|
-
Функция возвращает:
|
|
34
|
-
|
|
35
|
-
- `true`, если значение является типом `bigint`.
|
|
36
|
-
- `false` в противном случае.
|
|
37
|
-
|
|
38
|
-
## Примеры использования
|
|
39
|
-
|
|
40
|
-
### Пример 1: Проверка значений типа bigint
|
|
41
|
-
|
|
42
|
-
```js
|
|
43
|
-
is_bigint(BigInt(123456)); // true
|
|
44
|
-
is_bigint(BigInt(-123456)); // true
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
### Пример 2: Проверка значений других типов
|
|
48
|
-
|
|
49
|
-
```js
|
|
50
|
-
is_bigint(42); // false (число)
|
|
51
|
-
is_bigint('42'); // false (строка)
|
|
52
|
-
is_bigint(true); // false (логическое значение)
|
|
53
|
-
is_bigint(null); // false
|
|
54
|
-
is_bigint(undefined); // false
|
|
55
|
-
is_bigint({}); // false (объект)
|
|
56
|
-
is_bigint([]); // false (массив)
|
|
57
|
-
```
|
|
1
|
+
[Главная](../../README.md) / [Помощники](../helpers.md) / is_bigint
|
|
2
|
+
|
|
3
|
+
[Исходный код](../../src/helpers/is_bigint.mjs)
|
|
4
|
+
|
|
5
|
+
# `is_bigint`
|
|
6
|
+
|
|
7
|
+
`is_bigint` — Проверяет, является ли значение типом `bigint`.
|
|
8
|
+
|
|
9
|
+
## Сигнатура функции
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
function is_bigint(value: any): boolean;
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Параметры
|
|
16
|
+
|
|
17
|
+
- `value` (any)
|
|
18
|
+
|
|
19
|
+
Значение, которое необходимо проверить на принадлежность к типу `bigint`.
|
|
20
|
+
|
|
21
|
+
## Описание
|
|
22
|
+
|
|
23
|
+
Функция `is_bigint` предназначена для проверки, является ли переданное значение типом `bigint`.
|
|
24
|
+
|
|
25
|
+
Она проверяет:
|
|
26
|
+
|
|
27
|
+
1. Что значение имеет тип `bigint`.
|
|
28
|
+
|
|
29
|
+
Функция возвращает `false` для значений других типов, таких как числа, строки, объекты или массивы.
|
|
30
|
+
|
|
31
|
+
## Возвращаемое значение
|
|
32
|
+
|
|
33
|
+
Функция возвращает:
|
|
34
|
+
|
|
35
|
+
- `true`, если значение является типом `bigint`.
|
|
36
|
+
- `false` в противном случае.
|
|
37
|
+
|
|
38
|
+
## Примеры использования
|
|
39
|
+
|
|
40
|
+
### Пример 1: Проверка значений типа bigint
|
|
41
|
+
|
|
42
|
+
```js
|
|
43
|
+
is_bigint(BigInt(123456)); // true
|
|
44
|
+
is_bigint(BigInt(-123456)); // true
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Пример 2: Проверка значений других типов
|
|
48
|
+
|
|
49
|
+
```js
|
|
50
|
+
is_bigint(42); // false (число)
|
|
51
|
+
is_bigint('42'); // false (строка)
|
|
52
|
+
is_bigint(true); // false (логическое значение)
|
|
53
|
+
is_bigint(null); // false
|
|
54
|
+
is_bigint(undefined); // false
|
|
55
|
+
is_bigint({}); // false (объект)
|
|
56
|
+
is_bigint([]); // false (массив)
|
|
57
|
+
```
|