Определение
Предобработка данных в JavaScript выполняется с помощью функции, которая принимает один параметр value. Пользователь сам определяет тело функции.
Например, чтобы преобразовать килограммы в фунты, можно использовать следующий код:
function (value) {
return value * 2.20462;
}
Параметр value всегда передаётся в виде строки. Возвращаемое значение автоматически преобразуется в строку с помощью метода ToString(). Если преобразование завершается с ошибкой, то ошибка возвращается в виде строкового значения.
Есть несколько исключений из этого правила:
- Если функция возвращает неопределённое значение, это приведёт к ошибке.
- Если функция возвращает значение null, входящее значение будет отброшено, как если бы была выбрана предобработка «Отбросить значение» для действия «Другое при ошибке».
Ошибки можно возвращать с помощью вызова исключения к значениям или объектам (обычно это строки или объекты ошибок).
Например:
if (value == 0) {
throw "Zero input value";
}
return 1 / value;
Каждый скрипт выполняется в течение 10 секунд. Если выполнение занимает больше времени, это считается превышением времени ожидания, и возвращается ошибка. Также существует ограничение на использование памяти в 10 мегабайт.
Представление шага предобработки в JavaScript кэшируется и используется повторно, когда этот шаг применяется в следующий раз. Любые изменения в шагах предобработки приводят к сбросу кэширования скрипта и последующей повторной компиляции.
Если во время выполнения возникают последовательные ошибки (три раза подряд), это вызывает повторную инициализацию механизма. Это делается для того, чтобы уменьшить вероятность того, что один скрипт сломает всю среду выполнения для следующих скриптов. Это действие регистрируется с режимом отладки DebugLevel 4 и выше.
Пример использования предобработки JavaScript
Примеры использования предобработки JavaScript:
- Преобразование температуры:
function convertTemp(value, fromUnit, toUnit) {
if (fromUnit === 'C' && toUnit === 'F') {
return (value * 9 / 5) + 32;
} else if (fromUnit === 'F' && toUnit === 'C') {
return (value - 32) * 5 / 9;
} else {
throw new Error('Неподдерживаемые единицы измерения');
}
}
Эта функция позволяет конвертировать температуру из градусов Цельсия в Фаренгейты и наоборот.
- Проверка ввода:
function validateInput(value) {
if (!isNaN(value)) {
return true;
} else {
throw new Error('Введите число');
}
}
Функция проверяет, является ли введённое значение числом, и возвращает ошибку, если это не так.
- Шифрование текста:
function encryptText(text) {
let result = '';
for (let i = 0; i < text.length; i++) {
result += String.fromCharCode(text.charCodeAt(i) + 1);
}
return result;
}
Этот пример шифрует текст, добавляя 1 к коду каждого символа.
- Декодирование URL:
function decodeURL(url) {
let result = '';
for (let i = 0; i < url.length; i++) {
if (url.charCodeAt(i) > 127) {
result += '%' + ((url.charCodeAt(i) - 65) % 26) + ((url.charCodeAt(i) - 65) / 26);
} else {
result += url.charAt(i);
}
}
return result;
}
Функция декодирует URL, заменяя специальные символы их шестнадцатеричными эквивалентами.
- Чтобы преобразовать килограммы в фунты, используя предобработку JavaScript, вы можете написать функцию, принимающую параметр value и возвращающую результат преобразования:
function convertToPounds(value) {
return value * 2.20462;
}
В этой функции параметр value всегда передается в виде строки, но возвращаемое значение автоматически преобразуется в строку с помощью метода ToString().
Эти примеры демонстрируют различные способы использования предобработки JavaScript для решения различных задач.