Список типов данных Ява Скрипта — Soft8Soft
Description: Список Ява Скрипт типов данных, наиболее часто используемых в Вердж3Д.

# Базовые типы данных Ява Скрипта

«Ява Скрипт» — язык программирования с динамической типизацией, предоставляющий развёрнутую, но простую в использовании систему типов. Данный факт накладывает некоторые ограничения на разработчиков, особенно в контексте использвания АПИ «Вердж3Д». Указание параметров неверных типов может приводить к непредсказуемым и сложноотлаживаемым ошибкам. В связи с этим, мы рекомендуем обращаться к настоящей документации при любых сомнениях.

## #Any

Любой тип. Данный тип данных отсутствует в «Ява Скрипте» и служит только для целей документирования методов в настоящем руководстве.

## #ArrayBuffer

Буфер для хранения произвольных бинарных данных. Для доступа к содержимому данного буфера используется TypedArray.

`const buffer = new ArrayBuffer(8); const view = new Uint16Array(buffer); // 4 16-битных нуля`

## #Array

Штатный массив «Ява Скрипта»:

`const numArray = [1, 2, 3, 4]; const strArray = ['A', 'B', 'C']; const emptyArray = [];`

## #Boolean

Логический (булев) тип, может принимать значение `true` или `false`. Мы не рекомендуем использовать другие типы в качестве логических, такие как `''` (пустая строка), `1` (единица), `0` (ноль) или `null`.

## #Constant

Константа «Вердж3Д», определённая в пространстве имён `v3d`, например: `v3d.ESMShadowMap`, `v3d.RGBAFormat`, `v3d.MOUSE.LEFT`, etc. Описание всех констант приведено в настоящем руководстве.

## #Float

Число с плавающей запятой: `3.14`, `-5.0` или `1e6` (миллион). Для некоторых методов и свойств допустимы также значения `Infinity` (положительная бесконечность) и `-Infinity` (отрицательная бесконечность).

## #Function

Функция «Ява Скрипта». В контексте АПИ «Вердж3Д» данный тип указывает на то, что вам требуется определить коллбек или обработчик события и подать его в качестве параметра в какой-либо метод.

`function myCallback1(param) { // ваш код } const myCallback2 = function(param) { // ваш код } const myCallback3 = (param) => { // ваш код }`

## #HTMLCanvasElement

HTML-элемент `<canvas>`.

## #HTMLElement

HTML-элемент произвольного типа.

## #HTMLImageElement

HTML-элемент изображения (`<img>`).

## #Image

HTML-элемент изображения (`<img>`).

## #ImageBitmap

Битмап изображения.

## #Integer

Целое число, такое как `10`, `290`, `-1` или `0xff0000` (красный цвет в шестнадцатеричном исполнении).

В «Ява Скрипте» нет специального типа данных для представления целых чисел, поэтому их отличие от чисел с плавающей запятой чисто умозрительное. В частности `10` это же самое что и `10.0`, но в контексте настоящего руководства это разные типы данных.

## #null

Объект `null` «Ява Скрипта». В большинстве случаев данный тип указывает на то что данные не определены или не доступны в настоящий момент.

## #Object

Объект «Ява Скрипта». В большинстве случаев данный тип указывает на то, что вам следует определить словарь вида:

`const myObj = { name: 'Иван Петров', age: 40 }`

В случае необходимости использования пробелов или спецсимволов для ключей, поместите их в кавычки:

`const myObj = { 'имя': 'Иван Петров', 'возраст#': 40 }`

## #String

Строковой тип, например `'Привет мир!'`. Вы также можете использовать двойные кавычки для определения строк: `"Привет мир!"`.

## #this

Значение «Ява Скрипта» `this`. В большинстве мест настоящей документации `this` используется для указания на то, что метод возвращает ссылку на тот же самый экземпляр класса. Данные методы могут быть вызваны цепочкой:

`// [0, 0, 0] → [10, 0, 0] → [11, 1, 1] → [6, 0, 0] new v3d.Vector3().setX(10).addScalar(1).sub(new v3d.Vector3(5, 1, 1));`

По определению, все конструкторы классов возвращают `this`, поэтому данный факт явным образом не указывается в настоящей документации.

## #TypedArray

Типизированный массив «Ява Скрипта»:

`const array1 = new Uint32Array([1,2,3]); // три 32-битных целых числа const array2 = new Float32Array(1000); // 1000 нулей с плавающей запятой, точность 32 бита`

Следующие типизированные массивы используются в «Вердж3Д» наиболее часто:

Тип | Использование
--- | ---
Float32Array | Позиции, нормали, UV, анимация.
Uint8Array | Индексные буферы для небольших мешей.
Uint16Array | Индексные буферы для средних мешей.
Uint32Array | Индексные буферы для больших мешей.

## #undefined

Тип `undefined` (неопределённый). Как следует из названия, данный тип указывает на то, что переменная, свойство или функция не определена. Также, все функции «Ява Скрипта» которые явно не возвращают никаких значений, неявно возвращают `undefined`