<MyRusakov.ru />

Программирование на C++ с Нуля до Гуру

Программирование на C++ с Нуля до Гуру

Данный курс научит Вас программировать на языке C++, который, несмотря на свой почтенный возраст, необычайно сильно востребован. Курс состоит из 6 разделов, посмотрев которые и выполнив все упражнения, Вы с нуля освоите этот язык и сможете создавать самые разные проекты любой сложности на C++.

Для закрепления материала из уроков к ним идёт множество упражнений.

Дополнительно к курсу идёт вспомогательная система, которая не даст Вам забросить начатое на полпути.

Также вместе с курсов Вы получаете Бонус "Программирование на C++ в Unreal Engine", в котором Вы научитесь создавать игры на C++ с использованием этого движка.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Проверка типов параметров функции в JavaScript

Проверка типов параметров функции в JavaScript

Как известно - JavaScript - это язык с динамической типизацией. В этом его плюсы и минусы.

Но при описании какой-либо функции часто бывает необходимо проверить параметры на соответствие ожидаемым типам. Так, например, если мы ждем, что в функцию должен прийти объект, а приходит число - то мы получим ошибку, так как у числа, скорее всего не будет того метода объекта, который мы ожидаем.

Для решения задач проверки типов (в том числе), придумано множеств библиотек (flow от Facebook, например) и даже языков (TypeScript, например), но я покажу Вам в данной статье, конечно далекую от идеала, но, тем не менее, решающую базовые задачи по проверке типов функций.

Итак, далее код:


// получает строковое название типа переданного объекта, (number, string, object)
function typeOf( obj ) {
    // вызываем метод toString и получаем строку, для числа например, [object Number]
    // далее с помощью регулярных выражений вытаскиваем название типа и приводим его нижнему регистру
    return Object.prototype.toString.call( obj ).match(/\s(\w+)/)[1].toLowerCase();
}


/**
 *  функция проверяющая типы переданных аргументов
 * 
 * 
 * @param args {Object} - массивоподобный объект всех аргументов из проверяемой функции
 * @param types {Array} - массив типов
 **/
function checkTypes( args, types )
{
    // превращаем массивоподобный объект в обычный массив
    const _args = Array.prototype.slice.call( args );

    // проходим по массиву переданных типов сравнивая их с фактически переданными в функцию типами
    for ( let i = 0; i < types.length; ++i )
    {
        // если типы не совпадают - бросаем исключение
        if ( typeOf( _args[i] ) !== types[i] ) {
            throw new TypeError( 'Параметр '+ i +' должен иметь тип '+ types[i] );
        }
    }
}

Далее посмотрим на пример:


function doSomeWork(times, callback)
{
    // передаем встроенный объект arguments, содержащий все аргуметы функции
    // и массив типов ожидаемых параметров
    checkTypes(arguments, ['number', 'function']);

    // проверка прошла вызываем функцию
    callback(times);
}

// правильные параметры
doSomeWork(10, (times) => {
    console.log(times)
})

// Uncaught TypeError: Параметр 0 должен иметь тип number
doSomeWork([], (times) => {
    console.log(times)
})

Вот таким образом мы можем проверить типы входных параметров функции в JavaScript.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.