JavaScript — язык программирования с динамической типизацией, предоставляющий развёрнутую, но простую в использовании систему типов. Данный факт накладывает некоторые ограничения на разработчиков, особенно в контексте использвания АПИ Verge3D. Указание параметров неверных типов может приводить к непредсказуемым и сложноотлаживаемым ошибкам. В связи с этим, мы рекомендуем обращаться к настоящей документации при любых сомнениях.
Любой тип. Данный тип данных отсутствует в «Ява Скрипте» и служит только для целей документирования методов в настоящем руководстве.
Буфер для хранения произвольных бинарных данных. Для доступа к содержимому данного буфера используется TypedArray.
const buffer = new ArrayBuffer(8);
const view = new Uint16Array(buffer); // 4 16-битных нуля
Штатный массив JavaScript:
const numArray = [1, 2, 3, 4];
const strArray = ['A', 'B', 'C'];
const emptyArray = [];
Логический (булев) тип, может принимать значение true или false. Мы не рекомендуем использовать другие типы в качестве логических, такие как '' (пустая строка), 1 (единица), 0 (ноль) или null.
Константа Verge3D, определённая в пространстве имён v3d, например: v3d.ESMShadowMap, v3d.RGBAFormat, v3d.MOUSE.LEFT, etc. Описание всех констант приведено в настоящем руководстве.
Число с плавающей запятой: 3.14, -5.0 или 1e6 (миллион). Для некоторых методов и свойств допустимы также значения Infinity (положительная бесконечность) и -Infinity (отрицательная бесконечность).
Функция JavaScript. В контексте АПИ Verge3D данный тип указывает на то, что вам требуется определить коллбек или обработчик события и подать его в качестве параметра в какой-либо метод.
function myCallback1(param) {
// ваш код
}
const myCallback2 = function(param) {
// ваш код
}
const myCallback3 = (param) => {
// ваш код
}
HTML-элемент <canvas>.
HTML-элемент произвольного типа.
HTML-элемент изображения (<img>).
HTML-элемент изображения (<img>).
Битмап изображения.
Целое число, такое как 10, 290, -1 или 0xff0000 (красный цвет в шестнадцатеричном исполнении).
В «Ява Скрипте» нет специального типа данных для представления целых чисел, поэтому их отличие от чисел с плавающей запятой чисто умозрительное. В частности 10 это же самое что и 10.0, но в контексте настоящего руководства это разные типы данных.
Объект null JavaScript. В большинстве случаев данный тип указывает на то что данные не определены или не доступны в настоящий момент.
Объект JavaScript. В большинстве случаев данный тип указывает на то, что вам следует определить словарь вида:
const myObj = {
name: 'Иван Петров',
age: 40
}
В случае необходимости использования пробелов или спецсимволов для ключей, поместите их в кавычки:
const myObj = {
'имя': 'Иван Петров',
'возраст#': 40
}
Строковой тип, например 'Привет мир!'. Вы также можете использовать двойные кавычки для определения строк: "Привет мир!".
Значение JavaScript 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, поэтому данный факт явным образом не указывается в настоящей документации.
Типизированный массив JavaScript:
const array1 = new Uint32Array([1,2,3]); // три 32-битных целых числа
const array2 = new Float32Array(1000); // 1000 нулей с плавающей запятой, точность 32 бита
Следующие типизированные массивы используются в Verge3D наиболее часто:
| Тип | Использование |
|---|---|
| Float32Array | Позиции, нормали, UV, анимация. |
| Uint8Array | Индексные буферы для небольших мешей. |
| Uint16Array | Индексные буферы для средних мешей. |
| Uint32Array | Индексные буферы для больших мешей. |
Тип undefined (неопределённый). Как следует из названия, данный тип указывает на то, что переменная, свойство или функция не определена. Также, все функции JavaScript которые явно не возвращают никаких значений, неявно возвращают undefined