Ответ
При написании автотестов на JavaScript (например, с WebDriverIO или Playwright) я работаю со следующими типами данных:
Примитивные типы (передаются по значению):
number— для целых и дробных чисел. Использую для счетчиков, таймаутов, проверок числовых значений на странице.string— строки. Это основной тип для локаторов CSS/XPath, текстовых проверок (expect(element).toHaveText('some string')).boolean— логический типtrue/false. Постоянно встречается в условиях и результатах проверок (например,element.isDisplayed()).undefined— значение неинициализированной переменной. Важно отличать отnullпри отладке.null— явное указание на "отсутствие значения".symbol(ES6+) — уникальные идентификаторы. В тестах встречаю реже, обычно во внутренней логике фреймворков.bigint(ES2020+) — для работы с очень большими целыми числами. В веб-тестировании практически не используется.
Объектный тип (передается по ссылке):
object— коллекция свойств. Сюда же относятся массивы ([]), функции, даты. В тестах это часто объект страницы (Page Object), конфигурация или ответ от API.
Практический пример из тестов:
// Типы в контексте автотеста
const timeout = 10000; // number
const locator = '#submit-button'; // string
const isVisible = await $(locator).isDisplayed(); // boolean (ожидаемый результат проверки)
let pageObject; // undefined, пока не присвоено значение
const config = { baseUrl: 'https://test.env', headless: true }; // object
const apiResponse = await apiClient.get('/users'); // object (с данными JSON)
// Проверка типа
console.log(typeof timeout); // "number"
console.log(typeof isVisible); // "boolean"
console.log(Array.isArray(apiResponse.data)); // true (проверка, что data — массив) Видео-ответы
▶
▶
▶
▶