Q:

Как правильно понять этот код?

Так как JavaScript занимаюсь всего месяц, я еще не очень освоил детали. Нужно разъяснение по работе кода. А именно - что происходит в каждой строчке кода:
function preloadImages() {
    if (typeof arguments[arguments.length - 1] == 'function') {
        var callback = arguments[arguments.length - 1];
        } else {
            var callback = false;
        }
         if (typeof arguments[0] == 'object') {
          var images = arguments[0];
           var n = images.length;
       } else {
          var images = arguments;
          var n = images.length - 1;
       }
       var not_loaded = n;
       for (var i = 0; i < n; i++) {
         jQuery(new Image()).attr('src', images[i]).load(function() {
             if (--not_loaded < 1 && typeof callback == 'function') {
                callback();
            }
        });
    }
}

A:

Комментарии к коду:
function preloadImages() {
    //
    //Смотрим была ли передана функция callback последним параметром
    //preloadImages(function(){})
    //
    if (typeof arguments[arguments.length - 1] == 'function') {
        var callback = arguments[arguments.length - 1];
    } else {
        var callback = false;
    }
    //
    //Проверяем как были переданы пути картинок
    //массивом: preloadImages(["a.jpg", "b.jpg"])
    //или через запятую: preloadImages("a.jpg", "b.jpg")
    //
    if (typeof arguments[0] == 'object') {
        var images = arguments[0];
        var n = images.length;
    } else {
        var images = arguments;
        var n = images.length - 1;
    }
    var not_loaded = n;
    //
    //Создаем новый объект класса Image
    //Устанавливаем поле src - путь к картинке
    //Подписываемся на событие load
    //Если была задана callback-функция, вызываем ее
    //
    for (var i = 0; i < n; i++) {
        jQuery(new Image()).attr('src', images[i]).load(function() {
            if (--not_loaded < 1 && typeof callback == 'function') {
                callback();
            }
        });
    }
}

Можно сделать проще и красивее:
function preload(sources)
{
    var images = [];
    for (i = 0, length = sources.length; i < length; ++i) {
        images[i] = new Image();
        images[i].src = sources[i];
    }
}

или
$.fn.preload = function() {
    this.each(function(){
        $('<img/>')[0].src = this;
    });
}

Взято отсюда  тут и тут.

