JavaScript для начинающих 6th Edition Макграт
Майк install download
https://ebookstep.com/download/ebook-49472438/
Download more ebook from https://ebookstep.com
We believe these products will be a great fit for you. Click
the link to download now, or visit ebookstep.com
to discover even more!
Asuhan Kebidanan Pada Kehamilan Buku Ajar Bd Yulizawati
Sst M Keb Dr Detty Iryani M Kes M Pd Ked Aif Bd Lusiana
Elsinta B Sst M Keb Aldina Ayunda Insani S Keb Bd M Keb
Feni Andriani S Keb Bd M Keb
http://ebookstep.com/product/asuhan-kebidanan-pada-kehamilan-
buku-ajar-bd-yulizawati-sst-m-keb-dr-detty-iryani-m-kes-m-pd-ked-
aif-bd-lusiana-elsinta-b-sst-m-keb-aldina-ayunda-insani-s-keb-bd-
m-keb-feni-andriani-s-keb-bd-m-keb/
Power Negara Syarifurohmat Pratama Santoso S Ip
Christine Anggi Sidjabat Ba Ir M Han
http://ebookstep.com/product/power-negara-syarifurohmat-pratama-
santoso-s-ip-christine-anggi-sidjabat-ba-ir-m-han/
Handbuch Industrie 4 0 Bd 2 Automatisierung 2te Birgit
Vogel-Heuser
http://ebookstep.com/product/handbuch-
industrie-4-0-bd-2-automatisierung-2te-birgit-vogel-heuser/
Handbuch Industrie 4 0 Bd 1 Produktion 2nd Edition
Birgit Vogel-Heuser
http://ebookstep.com/product/handbuch-
industrie-4-0-bd-1-produktion-2nd-edition-birgit-vogel-heuser/
Yoko Tsuno Bd 7 Zwischen Leben Und Tod 2001st Edition
Roger Leloup
http://ebookstep.com/product/yoko-tsuno-bd-7-zwischen-leben-und-
tod-2001st-edition-roger-leloup/
Ein Mord erster Klasse Smiley Bd 2 1st Edition John Le
Carré
http://ebookstep.com/product/ein-mord-erster-klasse-smiley-
bd-2-1st-edition-john-le-carre/
Handbuch Industrie 4 0 Bd 3 Logistik 2nd Edition Birgit
Vogel-Heuser
http://ebookstep.com/product/handbuch-
industrie-4-0-bd-3-logistik-2nd-edition-birgit-vogel-heuser/
JavaScript для начинающих 6th Edition Макграт Майк
https://ebookstep.com/download/ebook-49472438/
Handbuch Industrie 4 0 Bd 4 Allgemeine Grundlagen 2nd
Edition Birgit Vogel-Heuser
http://ebookstep.com/product/handbuch-
industrie-4-0-bd-4-allgemeine-grundlagen-2nd-edition-birgit-
vogel-heuser/
Mike McGrath
JAVASCRIPT
create dynamic web pages
6
edition
Майк МакГрат
• ЦВЕТНОЕ ИЗДАНИЕ
• ЧЕТКИЕ ПОШАГОВЫЕ
ИНСТРУКЦИИ
• СОЗДАЙТЕ САЙТ С НУЛЯ
• ОПЫТ В РАЗРАБОТКЕ
НЕ НУЖЕН
JAVASCRIPT
ДЛЯ НАЧИНАЮЩИХ
6
издание
УДК 004.43
ББК 32.973.26-018.1
М15
Mike McGrath
JavaScript in easy steps 6th edition
Copyright © 2020 by In Easy Steps Limited
Translated and reprinted under a licence agreement from the Publisher: In Easy Steps, 16
Hamilton Terrace, Holly Walk, Leamington Spa, Warwickshire, U.K. CV32 4LY
МакГрат, Майк.
М15 JavaScript для начинающих / Майк МакГрат ; [перевод с англий-
ского М. А. Райтмана]. — 6-е издание. — Москва : Эксмо, 2023. —
232 с. : ил. — (Мировой компьютерный бестселлер).
ISBN 978-5-04-121621-4
Цветное руководство по JavaScript для начинающих позволит в короткое время
освоить этот язык программирования и приступить к созданию красивых и функци-
ональных сайтов. Вся информация представлена схематично и снабжена наглядными
примерами, а код и другие элементы, необходимые для обучения, читатели могут ска-
чать и использовать совершенно бесплатно.
УДК 004.43
ББК 32.973.26-018.1
© Райтман М. А., перевод на русский язык, 2023
ISBN 978-5-04-121621-4 © Оформление. ООО «Издательство «Эксмо», 2023
Содержание
z
1 Введение в JavaScript
Знакомство с JS
Добавление JavaScript в HTML-документ
Вывод JavaScript
9
10
11
12
Структура кода 14
Избегайте ключевых слов 17
Хранение значений 19
Создание функций 21
Назначение функций 24
Область видимости 26
z
Замыкания 29
Заключение 31
2 Распространенные операции 33
Преобразование типов 34
Арифметические операторы 36
Операторы присваивания 38
Операторы сравнения 40
Логические операторы 42
Условный (тернарный) оператор 44
Побитовые операции 46
z
Приоритет операторов 48
Заключение 51
3 Управляющие конструкции в JavaScript 53
Ветвление с помощью оператора if 54
Альтернативное ветвление 56
Ветвление с помощью оператора switch 58
Цикл for 60
Цикл while 62
Цикл do..while 64
Выход из циклов 66
Обработка ошибок 68
Заключение 71
z
4 Управление объектами
Пользовательские объекты
Расширенные функции
Встроенные объекты
73
74
76
78
Создание массивов 81
Обход элементов в цикле 83
Методы управления элементами в массиве 86
Сортировка элементов массива 88
Получение даты 90
Получение календаря 92
Получение времени 95
Установка даты и времени 97
z
Сопоставление текста с шаблоном 99
Заключение 102
5 Работа с числовыми и строковыми типами данных 105
Вычисление площади 106
Сравнение чисел 108
Округление чисел 110
Генерация случайных чисел 112
Объединение строк 114
Разбиение строк 117
Поиск символов 119
z
Обрезка строк 121
Заключение 123
6 Открытие окон и методы объекта window 125
Введение в DOM 126
Свойства объекта window 128
Диалоговые окна 130
Прокрутка 132
Всплывающие окна 135
Создание таймера 137
Сведения о браузерах 139
Включение/отключение функций 141
Расположение 144
История 146
Заключение 148
z
7 Методы и свойства объекта document
Работа с документом
Свойства интерфейса Document
Получение элементов
151
152
154
156
Работа с текстом 158
Управление файлами cookie 161
События загрузки 163
Ответ на события мыши 166
Генерация событий 168
Добавление переключателей 170
Добавление элементов выбора 172
Сброс формы 174
z
Проверка и отправка формы 177
Заключение 179
8 Разработка веб-приложений 181
Введение в JSON 182
Промисы 184
Получение данных 187
Разработка интерфейса 189
Заполнение ячеек в таблице 192
Заполненная таблица 194
z
Обновление приложений 196
Заключение 199
9 Написание скриптов 201
Запрос данных 202
Встраиваемая векторная графика 204
Работа с холстами 207
Хранение данных 209
Перемещение элементов 211
Связь между объектами window 214
Местоположение пользователей 216
Заключение 219
Предметный указатель 221
Как пользоваться этой книгой
С помощью примеров вы узнаете, как использовать встроенные функ-
ции JavaScript, поддерживаемые современными веб-браузерами, а снимки
экрана проиллюстрируют результаты, полученные с помощью примеров
кода. Необходимые фрагменты кода выделены цветом.
Синимцветом выделен JavaScript-код; красным — имена, присвоенные про-
граммистом; черным — текст; зеленым — комментарии к коду:
let sum = ( 9 + 12 ) / 3 // Эквивалентно 21 / 3.
document.getElementById( 'info' ).innerHTML += 'Grouped sum: ' + sum
Синим цветом выделены HTML-теги; черным — текст; оранжевым — зна-
чения атрибутов элементов в HTML- и JavaScript-коде:
<p id="info">JavaScript in easy steps</p>
Кроме того, для идентификации каждого исходного файла, описанного
в пошаговых инструкциях, на полях указаны значки и имена соответствую-
щих файлов:
JS JSON
{}
page.html data.json external.js data.xml echo.pl banner.svg
Чтобы избежать повторений, исходный код HTML-документов, приведен-
ных в примерах, указан не полностью. Однако он представляет собой весь
фрагмент документа, к которому применяется указанный JavaScript-код.
Вы можете скачать ZIP-архив, содержащий все полные файлы исходных
кодов, выполнив следующие простые шаги:
z 1 Перейдите на сайт http://addons.eksmo.ru/it/js.zip — загрузка нач-
нется автоматически
z 2 Извлеките содержимое архива в любое удобное место на вашем
компьютере.
Если вы не довольны полученным результатом, просто сравните свой код
с кодом исходных файлов.
Введение
1 в JavaScript
Добро пожаловать 8 Знакомство с JS
в удивительный
и захватывающий мир
9 Добавление JavaScript
программирования
в HTML-документ
на JavaScript! В этой главе 10 Вывод данных JavaScript
вы узнаете, как добавлять
сценарии в HTML- 12 Структура кода
документы, используя
15 Избегайте ключевых слов
переменные и функции
JavaScript. 17 Хранение значений
19 Создание функций
22 Назначение функций
24 Область видимости
27 Замыкания
29 Заключение
Введение в JavaScript
Знакомство с JS
Язык программирования JavaScript («JS») — это
объектно-ориентированный язык сценариев, объек-
ты которого встроены в программное обеспечение
веб-браузера, например, Google Chrome, Microsoft Edge,
Firefox, Opera и Safari. Для обеспечения функциональ-
ности это позволяет при загрузке страницы в браузе-
ре интерпретировать содержащиеся на веб-странице
сценарии. В целях безопасности язык JavaScript не мо-
жет считывать или записывать файлы, за исключени-
ем файлов cookie, в которых хранится минимальный
объем данных.
Самая первая реализация JavaScript была создана
Бренданом Эйхом (Айком) (Brendan Eich) в компании
Netscape. Этот язык программирования был впервые
представлен в декабре 1995 года и первоначально на-
зывался «LiveScript». Однако вскоре из коммерческих
соображений LiveScript был переименован в JavaScript,
получив соответствующую лицензию у Sun Microsystem.
10
До введения JavaScript браузер вызывал сценарии
на стороне сервера, а в связи с долгим ответом сни-
жалась производительность. Эта проблема решилась
с помощью вызова сценариев на стороне клиента.
Популярность языка JavaScript быстро росла. Но между
компаниями Netscape и Microsoft возникли разногла-
сия по поводу его лицензирования, поэтому Microsoft
Брендан Эйх, со- представила собственную версию языка под названи-
здатель языка про-
граммирования ем «JScript». Несмотря на то что новая версия JScript
JavaScript, а также очень похожа на JavaScript, она имеет некоторые расши-
соучредитель про- ренные функции. В июне 1997 года Ecma International
екта Mozilla, помог предложила стандартизировать JavaScript, и в резуль-
запустить веб-бра- тате появился «ECMAScript». Это помогло стабилизи-
узер Firefox.
ровать основные функции. Однако название не прижи-
лось среди юзеров, поэтому язык программирования
все же получил название JavaScript.
В книге представлены:
zОсновы языка — синтаксис, ключевые слова,
операторы, структура и встроенные объекты.
zФункциональность веб-страницы показывает, как
объектная модель документа (DOM) браузера
обеспечивает взаимодействие с пользователем.
zВеб-приложения — адаптивные веб-приложения
и текстовый формат представления данных
в нотации объекта JavaScript (JSON).
Добавление JavaScript
в HTML-документ
Вы можете добавить JavaScript-код в HTML-доку- В теге <script> при-
мент, поместив его между тегами <script> и </script>, меним атрибут
например: type="text/javascript".
Однако это не тре-
<script> буется, посколь-
ку JavaScript —
document.getElementById( 'message' ).innerText = 'Hello World!'
язык сценариев для
</script> HTML по умолча-
нию.
HTML-документ может включать в себя несколько
11
сценариев, которые помещаются в раздел заголовка
или тела документа. Однако рекомендуется размещать
сценарии в конце основного раздела (непосредственно
перед закрывающим тегом </body>), чтобы браузер мог
отобразить веб-страницу до выполнения сценария.
Также в HTML-документ можно добавить JavaScript
код, расположенный во внешнем файле с расши-
рением.js. Это позволяет нескольким различным
веб-страницам вызывать один и тот же сценарий.
Подключение внешнего сценария выполняется с по-
мощью атрибута src тега <script> следующим образом:
<script src="external_script.js"> </script> Не включайте теги
<script> и </script>
Этот код также можно поместить в раздел заголовка во внешний файл
или тела документа, и браузер будет рассматривать JavaScript. В них
необходимо до-
сценарий так, как если бы он был написан непосред- бавлять только код
ственно в этой позиции в HTML-документе. сценария.
Если атрибуту src тега <script> присваивается только
имя файла внешнего сценария, необходимо, чтобы
файл сценария находился в одной папке (каталоге)
Введение в JavaScript
с HTML-документом. Если сценарий находится
в другом месте, вы можете указать относительный
путь к файлу, например:
<script src="js/external_script.js"> </script>
Если сценарий расположен в другом месте сайта,
Внешние файлы можно указать абсолютный путь к файлу, например:
сценариев упро-
щают сопрово- <script src="https://www.example.com/js/external_script.js">
ждение кода. Поч- </script>
ти все примеры,
представленные
в этой книге, авто- Кроме того, можно указать содержимое, которое бу-
номные, поэтому дет отображаться на веб-странице только в том слу-
код сценария мож- чае, если пользователь в своем веб-браузере отклю-
но вставлять меж- чил JavaScript, включив в HTML-документ элемент
ду тегами в HTML- <noscript>, например:
документе.
<noscript>JavaScript is Not Enabled!</noscript>
Вывод JavaScript
12
В JavaScript существует несколько вариантов отобра-
жения данных. Например:
document.getElementById( 'message' ).innerText = 'Hello World!'
Атрибут id определяет уникальный идентификатор
HTML-элемента. Свойство innerText определяет со-
Обратите внима- держимое HTML-документа.
ние на использо-
вание оператора.
(точка) в описании
свойств или мето-
дов объекта с ис-
пользованием «то-
чечной нотации».
Также для отображения данных можно использовать
всплывающее окно сообщений.
window.alert( 'Hello World!' )
Метод alert( ) выводит на экран диалоговое окно с со-
общением, указанным в коде в круглых скобках ().
Существует так-
же метод document.
write( ), который пе-
В процессе изучения языка JavaScript предпочтитель- резаписывает весь
нее выводить данные в консоль браузера, например: заголовок и тело
веб-страницы. Сто-
ит отметить, что
console.log( 'Hello World!' )
его использование
считается плохой
Метод log( ) объекта console выводит в окно консо- практикой.
ли содержимое, указанное в круглых скобках ( ).
Фактически в любом браузере есть специальная па-
нель веб-разработчика, доступ к которой осущест-
вляется нажатием клавиши F12. Поскольку Google
Chrome — самый популярный браузер на момент
написания книги, я использовал его для демонстра-
ции JavaScript, а консоль этого браузера использует-
ся для отображения данных.
z
При возникнове-
1 нии ошибок в коде
13
Создайте HTML-документ, содержащий пу-
консоль предо-
стой абзац и программный код для отображе-
ставляет полез-
ния данных тремя способами. ные сообщения,
что очень удобно
<p id="message"></p> для отладки про-
<script> граммы.
document.getElementById( 'message' ).innerText =
'Hello World!'
window.alert( 'Hello World!' )
console.log( 'Hello World!' )
</script>
z 2 Сохраните HTML-документ, затем откройте
его в браузере, чтобы проанализировать по-
лученный результат, как показано на рисунке
output.html
ниже.
z 3 Нажмите клавишу F12 или воспользуйтесь
меню браузера, чтобы открыть Developers
Tools (Инструменты разработчика).
Введение в JavaScript
z 4 Выберите вкладку Console (Консоль), что-
бы увидеть содержимое, записанное в кон-
соли.
Убедитесь, что
в консоли отобра-
жается содержи-
мое, а также имя
HTML-докумен-
та и номер стро-
ки, где есть со-
ответствующий
JavaScript-код.
z 5 Нажмите кнопку Show/Hide (Показать/
Скрыть), чтобы скрыть или показать боко-
вую панель. Нажмите кнопку Customize
(Настроить), чтобы вы-
брать способ закре-
пления консоли в окне
браузера. Затем на-
жмите кнопку Clear
(Очистить), чтобы очи-
14
стить все содержимое
консоли.
Структура кода
JavaScript-код состоит из ряда инструкций, называе-
мых «операторами». Обычно все инструкции на стра-
нице выполняются сверху вниз.
Каждая инструкция может содержать любой из следу-
Более подроб- ющих элементов:
ную информацию
о ключевых сло-
вах вы можете най-
z Ключевые слова — слова, имеющие особое
ти на стр. 17–18, значение в языке JavaScript.
а об операторах,
значениях и выра- z Операторы — специальные символы,
жениях вы узнаете выполняющие операции с одним или
позже. несколькими операндами.
z Значения — текстовые строки, числа,
логическое значение true или false, значения
undefined и null.
z Выражения — любая часть исходного кода
программы, которая вычисляет значение.
Ранее в коде JavaScript каждый оператор должен был
заканчиваться символом ; (точка с запятой), а каждое
предложение — символом . (точка) в английской рас-
кладке. Теперь это необязательно, поэтому, если вы
не хотите писать несколько операторов в одной стро-
Результат
ке, то это правило можно опустить. В таком случае вычисления
операторы необходимо разделять точкой с запятой, выражения — это
например: значение, тогда
как оператор
оператор; оператор; оператор выполняет
действие.
Некоторые разработчики JavaScript по-прежнему
предпочитают заканчивать каждый оператор сим-
волом ; (точка с запятой). В приведенных в кни-
ге примерах он опускается, но выбор остается
за вами.
Интерпретатор JavaScript игнорирует отступы и про-
белы. Поэтому, чтобы улучшить читабельность кода,
15
необходимо использовать пробелы. Например, при сло-
жении двух чисел:
total = 100 + 200 вместо total=100+200
Операторы JavaScript обычно сгруппированы с по-
мощью фигурных скобок { }, разделяющих код
на функциональные блоки, которые можно при не-
Для удобства и чи-
обходимости многократно вызывать. Для удобства табельности кода
и читабельности кода рекомендуется делать отступы создавайте от-
двумя пробелами, например: ступы с помощью
клавиши Пробел,
{ так как при отлад-
ке кода в тексто-
оператор
вых редакторах от-
оператор ступы, созданные
оператор клавишей Tab, мо-
} гут обрабатываться
по-разному.
Синтаксис JavaScript — это набор правил, по которым
строится программа. В JavaScript существуют два типа
значений: фиксированные и переменные. Фиксиро-
ванные числовые и текстовые строковые значения на-
зываются литералами:
Введение в JavaScript
zЧисловые литералы — целые числа, например
100, или числа с плавающей запятой, например
3,142.
zСтроковые литералы — строка символов,
Для использования заключенная в двойные кавычки, например
строковых лите- "JavaScript Fun", или одинарные кавычки,
ралов рекоменду-
например 'JavaScript Fun'.
ется выбрать один
вид кавычек и при-
держиваться его. Переменные — это некий контейнер, внутри которого
В наших примерах можно хранить значения для дальнейшего использования
используются оди- в программе. В JavaScript предусмотрен способ объяв-
нарные кавычки. ления переменных с помощью ключевого слова let. На-
пример, с помощью кода let total создается переменная
с именем «total». Переменной можно присвоить зна-
чение, используя оператор присваивания =, например:
let total = 300
Прочие операторы JavaScript используются для соз-
дания выражений, которые будут вычислять одно
значение. Как правило, выражение заключается
16
в круглые скобки ( ). Например, приведенное ниже
выражение содержит числа и оператор сложения +
и вычисляет одно значение 100:
( 80 + 20 )
Также выражения могут содержать значения пере-
менных. Например, для вычисления одного значе-
ния 100 выражения могут содержать предыдущее
значение переменной, оператор вычитания и число:
( total – 200 )
JavaScript чувствителен к регистру символов, поэтому
переменные с именами total и Total — это две совер-
шенно разные переменные.
Иногда возника-
ет необходимость Хорошей практикой считается добавление к коду по-
закомментировать
яснительных комментариев. Они делают код более по-
строки кода, что-
бы предотвратить нятным для других пользователей, а также для вас при
их выполнение при его повторном просмотре. Все, что находится в одной
отладке. строке после символа // или между символов /* и */ в од-
ной или нескольких строках, будет проигнорировано.
let total = 100 // Этот код БУДЕТ выполнен.
/* let total = 100
Этот код НЕ БУДЕТ выполнен. */
Избегайте
ключевых слов
В программе для переменных и функций вы може-
те указывать собственные имена. Лучше всего давать
переменным осмысленные имена, которые будут от-
ражать суть переменной или функции. Имя пере-
менной может содержать буквы, цифры и символы
подчеркивания, но никогда не начинается с цифры.
Также в нем не используются пробелы. Запрещает-
ся использовать в качестве имен переменных при-
веденные ниже в таблице ключевые слова, которые
имеют особое значение:
Ключевые (зарезервированные) слова JavaScript
17
abstract arguments await boolean
break byte case catch
char class const continue
debugger default delete do
double else enum eval
export extends false final
finally float for function
goto if implements import
in instanceof int interface
let long native new
null package private protected
public return short static
super switch synchronized this
throw throws transient true
try typeof var void
volatile while with yield
Введение в JavaScript
Объекты, свойства и методы JavaScript
Array Date eval function
hasOwnProperty Infinity isFinite isNaN
isPrototypeOf length Math NaN
name Number Object prototype
String toString undefined valueOf
HTML-имена, объекты окна и свойства
alert all anchor anchors
area assign blur button
checkbox clearInterval clearTimeout clientInformation
close closed confirm constructor
crypto decodeURI decodeURIcomponent defaultStatus
document element elements embed
embeds encodeURI encodeURIcomponent escape
event fileUpload focus form
forms frame innerHeight innerWidth
layer layers link location
18
mimeTypes navigate navigator frames
frameRate hidden history image
images offscreenBuffering open opener
option outerHeight outerWidth packages
pageXOffset pageYOffset parent parseFloat
parseInt password pkcs11 plugin
prompt propertyIsEnum radio reset
screenX screenY scroll secure
select self setInterval setTimeout
status submit taint text
textarea top unescape untaint
window
Атрибуты событий в HTML
Например:
onclick ondblclick onfocus onfocusout
onkeydown onkeypress onkeyup onload
onmousedown onmouseup onmouseover onmouseout
onmousemove onchange onreset onsubmit
Хранение значений
Переменная — это контейнер, общий для каждого язы-
ка сценариев и языка программирования, в котором
хранятся данные и в процессе работы могут быть из-
влечены. В отличие от строго типизированных пере-
менных в большинстве других языков программиро-
вания, которые должны декларировать определенный
тип данных, переменные JavaScript в использовании
намного проще. JavaScript — язык со слабой типи-
зацией, поэтому переменные могут содержать любой
тип данных:
Тип данных Пример Описание
Последовательность сим-
String 'Hello World!'
волов
Целое число или число
Number 3.142 Имя переменной —
с плавающей запятой
это псевдоним
Значение true (1) или false для значения.
Boolean true
(0) С помощью него
можно ссылаться
19
Пользовательский или
Object console на ее сохраненное
встроенный объект значение.
Пользовательская функция,
Function log( ) встроенная функция или
метод объекта
Уникальный
Symbol Symbol( )
идентификатор
Отсутствие какого-либо
null null
объектного значения
undefined undefined Пустое значение
Для объявления переменных в JavaScript используют-
ся ключевые слова let, const или var, за которыми сле-
дует пробел и выбранное вами имя. По мере выполне-
ния программного кода ключевое слово let позволяет
присваивать переменным новые значения, тогда как
const (константа) не предполагает никаких измене-
ний. Ключевое слово var использовалось в JavaScript Для удобства ре-
до введения ключевого слова let. Однако сейчас его комендуется вы-
лучше избегать, так как оно позволяет дважды объ- бирать понятные
и осмысленные
являть одну и ту же переменную в одном и том же имена переменных.
контексте.
Введение в JavaScript
Объявление переменной через let позволяет в про-
грамме создать переменную, значение которой может
быть присвоено позже. Директива let объявляет пере-
менную с блочной областью видимости с возможно-
стью инициализировать ее значением.
let myNumber // Объявление переменной.
myNumber = 10 // Инициализация переменной.
let myString = 'Hello World!' // Объявление и инициализация пе-
ременной.
Также в одной строке можно объявить несколько пе-
ременных:
let i, j, k // Объявление трех переменных.
let num = 10, char = 'C' // Объявление и инициализация
двух переменных.
Однако константы должны быть инициализированы
во время объявления:
const myName = 'Mike'
20
После инициализации JavaScript автоматически уста-
навливает тип переменной для присвоенного значения.
Последующее назначение другого типа данных выпол-
няется в программе позже, чтобы изменить тип дан-
ных. Текущий тип переменной можно узнать по клю-
чевому слову typeof.
z 1 Создайте HTML-документ. Объявите и про-
инициализируйте несколько переменных
разного типа.
variables.html const firstName = 'Mike'
const valueOfPi = 3.142
let isValid = true
let jsObject = console
let jsMethod = console.log
let jsSymbol = Symbol( )
let emptyVariable = null
let unusedVariable
z 2 Для вывода типа данных каждой переменной
добавьте операторы:
console.log( 'firstName: ' + typeof firstName )
console.log( 'valueOfPi: ' + typeof valueOfPi )
console.log( 'isValid: ' + typeof isValid )
console.log( 'jsObject: ' + typeof jsObject )
console.log( 'jsMethod: ' + typeof jsMethod )
console.log( 'jsSymbol: ' + typeof jsSymbol ) Оператор конкате-
console.log( 'emptyVariable: ' + typeof emptyVariable ) нации + в данном
console.log( 'unusedVariable: ' + typeof unusedVariable ) примере исполь-
z
зуется для вывода
объединенной тек-
3 Сохраните HTML-документ, затем открой- стовой строки.
те его в браузере и запустите консоль. Проа-
нализируйте полученные результаты — типы
данных.
Вы будете удивле-
ны, увидев, что пе-
ременная, которой
присвоено значе-
ние null, описыва-
21
ется как тип object,
а не тип null. Это
распространен-
ная ошибка языка
JavaScript.
Создание функций
Объявление функции состоит из одного или несколь-
ких операторов, сгруппированных вместе в фигурные
скобки { }. Функция вызывает свои инструкции и воз-
вращает в результате единственное значение. Функ-
ции могут вызываться по требованию программы. Что-
бы отличать встроенные функции от определяемых
пользователем, функции, которые являются свойством
объекта, например console.log(), называются методами.
Встроенные и определяемые пользователем функции
содержат завершающие круглые скобки, которые мо-
гут принимать значения аргумента. Например, аргу-
мент, переданный в скобках метода console.log( ).
Количество аргументов, передаваемых функции,
как правило, должно соответствовать количеству
Введение в JavaScript
параметров, указанных в скобках. Например, опре-
деляемая пользователем функция, требующая только
один аргумент, выглядит так:
function ƆƊƝ ƒƑƋƈƔƆƆ ( ƍžƎžƊƃƐƎ ) {
Обратите внима- // Здесь будет ваш код.
ние, что в пред- }
почтительном фор-
мате объявления
функции откры- Функция может иметь несколько параметров, которые
вающая фигурная указываются через запятую в скобках. При необходи-
скобка {находит- мости вы можете указать значение по умолчанию, кото-
ся в той же стро- рое будет использоваться, когда вызов функции не пе-
ке, что и ключевое редает аргумент, например:
слово function.
function ƆƊƝ ƒƑƋƈƔƆƆ ( ƍžƎžƊƃƐƎ, ƍžƎžƊƃƐƎ = ƅƋžƕƃƋƆƃ ) {
// Здесь будет ваш код.
}
Выбирая собственные имена параметров, необходимо
следовать тем же правилам, что и при выборе имен
переменных. Имена параметров можно использовать
в функции для ссылки на значения аргументов, пере-
22
данных при вызове функции.
Функциональный блок может включать оператор return.
Он предназначен для возвращения значения выраже-
ния в качестве результата выполнения функции. Как
только выполнение программы доходит до этого ме-
ста, функция останавливается, и значение возвраща-
Вы можете опу- ется в вызвавший ее код.
стить оператор
return или использо-
function имя функции ( параметр, параметр = значение ) {
вать ключевое сло-
во return без указа- // Здесь будет ваш код.
ния значения, тогда
функция в резуль- return результат
тате вернет значе- }
ние undefined.
В функциональном блоке также может находиться вы-
зов других функций.
z 1 Создайте HTML-документ. Создайте функ-
цию, возвращающую значения переданно-
го аргумента, возведенного в квадрат (во вто-
рую степень).
functions.html
function square ( arg ) {
return arg * arg
}
z
2 Добавьте функцию, возвращающую результат
сложения.
function add ( argOne, argTwo = 10 ) {
return argOne + argTwo
}
z
3 Теперь добавьте функцию, возвращающую
результат возведения в квадрат и сложения,
как показано ниже.
function squareAdd ( arg ) {
let result = square( arg )
return result + add( arg )
}
z
4 Добавьте операторы, которые вызывают
функции и выводят возвращаемые значения
Обратите
внимание, что
в нашем случае
23
на экран.
используется
значение второго
console.log( '8 x 8: ' + square( 8 ) ) параметра
console.log( '8 + 20: ' + add( 8, 20 ) ) по умолчанию
console.log( '8 + 10: ' + add( 8 ) ) (10), когда при
console.log( '(8 x 8) + (8 + 10): ' + squareAdd( 8 ) ) вызове функции
z
передается только
одно значение
5 Сохраните HTML-документ, затем откройте аргумента.
его в браузере и запустите консоль. Проана-
лизируйте полученный результат — возвра-
щаемые функциями значения.
Символ * — это
оператор арифме-
тического умноже-
ния в JavaScript.
Введение в JavaScript
Назначение функций
Функции — важный инструмент в JavaScript. Это
некоторый фрагмент кода, который можно описать
один раз, а затем вызывать на выполнение в разных
частях программы любое число раз.
При присвоении
переменной Важно понимать, что оператор ( ) — это компонент
именованной оператора вызова, который фактически вызывает
функции функцию. Это означает, что оператор может назна-
указывайте чить функцию переменной, указав только имя функ-
в операторе только ции. Затем переменную можно использовать для вы-
имя функции.
зова функции. Однако будьте внимательны, если вы
попытаетесь назначить функцию переменной, указав
ее имя, за которым следует символ ( ). Такая функ-
ция будет вызвана, и будет присвоено значение, воз-
вращаемое этой функцией.
Поднятие
Хотя код читается интерпретатором JavaScript сверху
вниз, на самом деле он выполняет два этапа. На пер-
24
вом этапе ищутся объявления функций и запомина-
ется все, что находится в процессе, то есть поднятие.
Переменные, ко- Второй этап — это когда код фактически выполняет-
торые были объяв- ся интерпретатором.
лены с использо-
ванием прежнего
ключевого сло- Поднятие позволяет вызовам функций появляться
ва var, также были в коде до объявления функции, так как интерпрета-
подняты. Перемен- тор уже распознал функцию на первом этапе. Одна-
ные, которые были ко на первом этапе не распознаются функции, ко-
объявлены с по- торые были присвоены переменным с помощью
мощью ключевых
слов let или const, ключевых слов let или const!
не поднимались.
Анонимные функции
При присвоении функции переменной имя функ-
ции можно не указывать, так как ее можно вызвать
в операторе, указав имя переменной и оператор ().
Такие функции называются анонимными функци-
ональными выражениями. Их синтаксис выглядит
следующим образом:
let переменная = function ( параметры ) { операторы ;
return ƅƋžƕƃƋƆƃ}
Анонимные функциональные выражения также мож-
но сделать самовызывающимися, заключив функцию
целиком в круглые скобки ( ) и добавив в конце вы-
ражения оператор ( ). Это означает, что при первой
загрузке сценария браузером операторы автоматиче-
ски выполняются один раз. Синтаксис функциональ- Самовызывающи-
ного выражения с автоматическим запуском выгля- еся функциональ-
ные выражения
дит так: также извест-
ны как немедлен-
( function ( ) { операторы ; return значение } ) ( ) но вызываемые
функции (IIFE — ча-
В приведенных в книге примерах для выполнения сто произносится
кода при загрузке скрипта обычно используются са- как «iff y»).
мовызывающиеся функции.
z 1 Создайте HTML-документ. Вызовите функ-
цию, которая еще не была объявлена.
console.log( 'Hoisted: ' + add( 100, 200 ) )
z
anonymous.html
2 Добавьте функцию, которая вызывается выше.
25
function add( numOne, numTwo ) {
return numOne + numTwo
}
z 3 Добавьте функцию, которая назначает ука-
занную выше функцию переменной, а потом
вызывает назначенную функцию.
let addition = add
console.log( 'Assigned: ' + addition( 32, 64 ) )
z 4 Назначьте аналогичную, но анонимную функ-
цию переменной и вызовите назначенную
функцию.
let anon = function ( numOne, numTwo ) {
let result = numOne + numTwo ; return result Смысл самовызы-
} вающихся функ-
console.log( 'Anonymous: ' + anon( 9, 1 ) ) ций может быть
не сразу понятен,
z 5 Присвойте значение, возвращаемое самовы-
зывающейся функцией, переменной и ото-
бразите полученное значение.
но к концу этой
главы их важность
станет более яс-
ной и очевидной.
Введение в JavaScript
let iffy = ( function ( ) {
let str = 'Self Invoked Output' ; return str
})()
console.log( iffy )
z 6 Сохраните HTML-документ, затем откройте
его в браузере и запустите консоль. Проана-
лизируйте полученные результаты — возвра-
щаемые функцией значения.
Область видимости
26
Все переменные в JavaScript имеют определенную
область видимости, в пределах которой они могут
действовать. Таких областей две — глобальная и ло-
кальная.
Глобальная область видимости
Переменная или функция, созданная в этой обла-
сти видимости, доступна из любой точки програм-
мы. Это означает, что переменные существуют по-
стоянно и доступны для функций в одной области.
На первый взгляд это может показаться очень удоб-
ным, однако имеется серьезный недостаток, заклю-
чающийся в том, что одноименные переменные мо-
гут конфликтовать. Представьте, что вы создали
глобальную переменную myName, которой вами было
присвоено имя, но затем подключился внешний код,
в котором другой разработчик создал глобальную пе-
ременную myName с таким же именем. Обе пере-
менные существуют в одной области программы,
то есть конфликтуют. Таких ситуаций лучше избе-
гать, поэтому для хранения примитивных значений
не рекомендуется создавать глобальные перемен-
ные (всех типов данных, за исключением Object
и Function).
Локальная область видимости
Переменные, созданные внутри функциональ-
ных блоков, доступны локально на протяжении все-
го цикла функции. Они существуют только во вре-
мя ее выполнения, а затем удаляются. Их область
программы ограничена — от места, в котором они Информация
по обнаружению
были созданы, до последней фигурной скобки} или
и обработке оши-
момента возврата из функции. Рекомендуется объ- бок более под-
являть переменные в начале функционального бло- робно описана
ка, чтобы их лексическая область видимости соот- на стр. 68–69.
ветствовала времени жизни функции. Это означает,
что переменные с одинаковыми именами могут су-
ществовать внутри отдельных функций без созда-
ния конфликта. Например, локальная переменная
myName может успешно существовать в програм-
ме внутри отдельных функций и внутри функций
во включенных внешних кодах. В программе для
хранения значений рекомендуется создавать только
27
локальные переменные.
Наиболее эффективный вариант
Объявление глобальных переменных с использова-
нием ключевого слова var позволяет конфликтующим
переменным с одинаковыми именами перезаписы-
вать присвоенные им значения без предупрежде-
ния. В этом случае в результате использования бо-
лее новых ключевых слов let и const выдается ошибка
Uncaught SyntaxError. Поэтому в программе для хра-
нения значений рекомендуется создавать перемен-
ные, объявленные с использованием ключевых слов
let или const. JS
z 1 Создайте внешний код, в котором вызывает-
ся функция для вывода значения глобальной
переменной. external.js
let myName = 'External Script'
function readName( ) {console.log( myName ) }
readName( )
scope.html
Введение в JavaScript
z
2 Создайте HTML-документ, который подклю-
чает внешний код и добавляет аналогичный.
<script src="external.js"></script>
<script>
let myName = 'Internal Script'
function getName( ) {console.log( myName ) }
getName( )
</script>
z
3 Сохраните оба файла в одной папке, затем
откройте HTML-документ, чтобы увидеть
сообщение об ошибке конфликта в консоли.
z
4
28
Отредактируйте оба скрипта, чтобы преобра-
зовать глобальные переменные в локальные.
Во избежание конфликта обновите браузер.
function readName( ) {
Вызовы функций let myName = 'External Script'; console.log (
readName( ) и getName( ) myName )
остаются }
в коде без
редактирования. function getName( ) {
let myName = 'Internal Script'; console.log (
myName )
}
Замыкания
На предыдущем примере была продемонстрирована
опасность создания глобальных переменных для хра-
нения значений в JavaScript. Однако возникает необ-
ходимость сохранить значения, которые остаются по-
стоянно доступными, — например, чтобы запоминать
увеличение счетчика в ходе выполнения программы.
Как это сделать без использования глобальных пере-
менных для хранения примитивных значений? Ответ
заключается в использовании замыканий.
Замыкание — это комбинация функции и лексическо-
го окружения вместе со всеми доступными внешними
переменными. В JavaScript замыкания создаются каж-
дый раз при создании функции, во время ее создания.
z 1 Создайте HTML-документ с кодом, который
присваивает глобальной переменной самовы-
зывающуюся анонимную функцию.
29
const add = ( function ( ) { сlosure.html
// Здесь будет ваш код.
})()
z 2 Добавьте операторы для инициализации ло-
кальной переменной и назначения функции
локальной переменной в той же области.
let count = 0
Самовызывающие-
const nested = function ( ) { return count = count + 1 ся функции описа-
} ны на стр. 24. Они
z
выполняют свои
3 Теперь добавьте оператор для возврата вну- операторы толь-
тренней функции — присвоения внутренней ко один раз. В дан-
ном случае вы мо-
функции глобальной переменной. жете использовать
console.log(add),
return nested чтобы подтвер-
z
дить, что выраже-
4 Наконец добавьте три идентичных вызова ние функции было
присвоено внеш-
функций к внутренней функции, которая те-
ней переменной.
перь назначена глобальной переменной.
console.log( 'Count is ' + add( ) )
Введение в JavaScript
console.log( 'Count is ' + add( ) )
console.log( 'Count is ' + add( ) )
z 5 Сохраните HTML-документ, затем откройте
его в браузере и запустите консоль. Проана-
лизируйте полученные результаты — значе-
ния, возвращенные при закрытии.
Все объекты
JavaScript наследу-
ют свойства и ме-
тоды от свойства
prototype. Стан-
дартные объек-
ты JavaScript, такие
как функции, для
создания объекта
вызывают функцию
внутреннего кон- Понять концепцию замыканий непросто — может по-
структора. казаться, что переменная count в нашем примере долж-
на быть удалена, когда самовызывающаяся функция
завершит выполнение. Чтобы разобраться, как рабо-
тают замыкания, вы можете изучить свойство prototype.
z 6
30
В конце кода добавьте следующий оператор.
console.log( add.prototype )
z 7 Сохраните HTML-документ, затем обновите
браузер и разверните раскрывающийся спи-
сок constructor, чтобы увидеть области.
Не беспокой-
тесь, если вы сра-
зу не сможете по-
нять, как работают
замыкания. Сна-
чала это пока-
жется сложным,
но со временем
все станет гораздо
проще и понятнее.
Вы можете про-
должить изучение,
а затем вернуть-
ся к этому инстру-
менту.
Присмотритесь внимательнее, и вы обнаружите, что
назначенная функция имеет особую область видимо-
сти (замыкание) в дополнение к обычной локальной
(скрипт или код) и внешней (глобальной) области. Та-
ким образом, переменная count остается доступной че-
рез назначенную функцию. Однако на нее невозмож-
но ссылаться каким-либо другим способом.
Считается важным использование замыканий для со-
крытия постоянных переменных от других областей
кода. Точно так же частные переменные могут быть
скрыты в других языках программирования и доступ-
ны только при использовании методов чтения.
Заключение
zJavaScript-код может быть включен в HTML-
документ напрямую или из внешнего файла
с помощью тегов <script> </script>.
zJavaScript позволяет отображать результаты
31
вывода в диалоговом окне предупреждения или
в окне консоли браузера.
zОператоры JavaScript могут содержать ключевые
слова, операторы, значения и выражения.
zИнтерпретатор JavaScript игнорирует отступы
и пробелы.
zОператоры JavaScript могут быть сгруппированы
в функциональные блоки с помощью фигурных
скобок {}, которые при необходимости
вызываются для выполнения.
zИмена переменных и функций могут состоять
из букв, цифр и символов подчеркивания,
но запрещается использовать в качестве имен
переменных ключевые слова.
zПеременные JavaScript могут содержать
следующие типы данных: строка (string), число
(number), булев или логический тип (boolean),
Введение в JavaScript
объекты (object), функция (function), символы
(symbol), значение (null) и специальное
значение (undefined).
zПеременным, объявленным с использованием
ключевого слова let, можно дать новые значения.
Ключевое слово const не предполагает
изменений.
zОбъявление функции состоит из одного или
нескольких операторов, сгруппированных вместе
в фигурные скобки { }. Функция вызывает
свои инструкции и возвращает в результате
единственное значение.
zВ функциональном выражении в круглых скобках
( ) могут содержаться параметры значений
аргументов, передаваемых от вызывающей
стороны.
zФункциональный блок может включать оператор
return для указания данных, которые должны
32
быть переданы обратно вызывающей стороне.
zОператор ( ) вызывает функцию.
zПоднятие позволяет вызовам функций
появляться в коде до объявления функции.
zФункция может быть анонимной, то есть
не иметь имени.
zЛексическая область видимости — это область,
где была создана переменная, которая может
быть глобальной, локальной или замыканием.
zЗамыкание — это функция, вложенная
во внешнюю функцию, которая сохраняет
доступ к переменным, объявленным во внешней
функции.
Распространенные
2 операции
В этой главе вы узнаете 32 Преобразование типов
об операторах языка
JavaScript и о том, как они
34 Арифметические
используются в скриптах.
операторы
36 Операторы присваивания
38 Операторы сравнения
40 Логические операторы
42 Условный (тернарный)
оператор
44 Побитовые операции
46 Приоритет операторов
49 Заключение
Распространенные операции
Преобразование типов
Во избежание непредвиденных результатов перед
выполнением операций в JavaScript важно опре-
делить типы данных значений, с которыми вы ра-
ботаете. Например, значение 42 — это число,
а значение '42' — строка, поэтому в результате сло-
жения '42' + 8 получится строковое выражение '428',
а не число 50. JavaScript предоставляет несколько
способов преобразования типов данных без измене-
ния исходного значения.
Преобразование строки в число
Встроенная функция parseInt() принимает строку в ка-
честве аргумента и возвращает целое число в соот-
ветствии с указанным основанием системы счисле-
ния. Например, parseInt('42') вернет число 42, поэтому
в результате сложения 42 + 8 получится число 50.
Встроенная функция parseFloat() принимает строку
в качестве аргумента и возвращает десятичное число
34
(число с плавающей запятой).
Оба метода позволяют буквенным символам следо-
вать за числовой частью указанной строки и удалять
их из результата — например, parseInt('42nd Street')
в результате возвращает число 42.
Если в начале указанной строки ни одна из этих
функций не находит числовое значение, результатом
будет NaN (Not-A-Number) — свойство JavaScript,
Преобразова- означающее «не число». С помощью функции isNaN( )
ние или приве- вы можете проверить, является ли переменная или
дение типов дан- литерал нечисловым значением. В начале указанно-
ных может быть го значения она попытается найти число и вернет
явным или неяв-
false, если число обнаружено (даже в указанной стро-
ным. Например,
‹42› + 8 в результа- ке). В противном случае, если этого не произойдет,
те выполнения воз- в результате вернется значение true.
вращает строку
‹428› — это неявное Преобразование числа в строку
приведение. Метод Метод String( ) – строковое представление числа, ука-
String(42) возвращает
в результате стро- занного в круглых скобках, например, String(42) вер-
ку '42' — это явное нет в результате строковый тип данных '42'.
приведение.
Other documents randomly have
different content
[37] Inscription on the back: ‘Clarissimi viri Cosmas et Laurentius
fratres neglectas diu Sanctorum reliquias martyrum religioso
studio ac fidelissima pietate suis sumptibus æneis loculis
condendas colendasque curarunt.’ Figured in the Monuments
Sépulcraux, Table xx. In the time of the French invasion broken
up and destined to be melted down, but rescued and restored,
and now in the National Museum in the Palace of the Podestà.
[38] Pagnini, Della decima, etc., ii. p. 80. S. L. Peruzzi, p. 61.
Osservatore fiorentino, iii. p. 185, vi. p. 157.
[39] Gio. Villani, xi. chap. 93.
[40] P. Berti, Documenti riguardanti il commercio dei Fiorentini in
Francia nei secoli xiii. e xiv. in the Giornale storico degli Arch.
Tosc. i. pp. 163, 217. The most abundant material is contained in
Francesco Balducci Pegolotti’s Pratica della Mercatura, 14th
century, and Pagnini, iii.
[41] Osservatore fiorentino, iv. p. 124. F. Fantozzi, Notizie
biografiche di Bernardo Cennini, Flor. 1839, p. 33. Fantozzi
regards the Calimaruzza as the former Via Francesca, where the
magazines of foreign cloth were, and the Calimala as the place
for the sale of the native fabrics.
[42] G. Gargioli, L’Arte della Seta in Firenze trattato del secolo xv.,
Flor. 1868. The lists from 1225 to 1337 are printed p. 282-290. L.
Venturi, Filippo Matteoni (the biography of one of the most
intelligent silk-weavers of our time), in verse and prose, Flor.
1871, p. 321. S. Bongi, Della Mercatura dei Lucchesi nei sec. xiii.
e xiv. Osservatore fior. iv. p. 103; vi. p. 36. Peruzzi, p. 36, where
there are also the portraits of a crimson-dyer and a silk-spinner,
after a MS. in the Laurentiana.
[43] L’Inferno, xvii. 43. Compare E. Morpurgo, I prestatori di denaro
al tempo di Dante, in Dante e Padua, Studj storico-critici, Padua,
1865, p. 193.
[44] Divine Comedy, ‘Paradise,’ xix. 119.
[45] Kervyn de Lettenhove, Les Argentiers Florentins, in the
Bulletins de l’Académie r. de Belgique, 1861, pp. 295-312.
Compare also his treatise, Recherches sur la part que l’ordre de
Citeaux et le Comte de Flandre prirent à la lutte de Boniface VIII.
et de Philippe le Bel, in the Mémoires of the same Academy,
xxviii. On the Franzesi family see Repetti, Dizionario della
Toscana, article ‘Figline, Staggia.’
[46] Vol. x. chap. 88.
[47] Fr. Balducci Pegolotti, in Pagnini, p. 198.
[48] Bartolommeo Cerretani, in Fabroni M. Cosmi Med. Vita, ii. 63.
Concerning this still unprinted chronicler, see Moreni, Bibliografia
della Toscana, i. 249.
[49] Del Migliore, p. 6. See Gaye, p. 424.
[50] Extracts in Gaye, in the registers.
[51] Paradiso xv. 97. Purgat. xvi. 117.
[52] L. Mehus: Ambrosii Traversarii Epistolæ et Orationes. Flor.
1759, ccclxxiv.
[53] On the Bardi see Ademollo, Marietta de Ricci, 2nd edit. by L.
Passerini, Flor, 1815, iii. 1135.
[54] ‘Io confesso—che il concilio non è per me. Ma che debbo fare,
se haggio uno fato che mi ci tira?’—Luca della Robbia, Vita di
Bartolommeo Valori, in the Arch. Stor. Ital. iv. part i. 262.
[55] Documenti relativi alla liberazione dalla prigionia di Giovanni
XXIII., in the Arch. Stor. Ital. 429. Writings of Averardo di Medici
to Michele Cossa, Flor. Dec. 31, 1419. Fabroni as above, ii. 11.
[56] Ciacconio: Historia Pontificum, etc., Rome, 1677, ii. 795, and
the Monuments sépulcraux, plate xi., give an illustration. From
Michelozzo’s Survey-Declaration in Gaye, as above, 117, we see
that the monument was still unfinished in 1427, and the price
agreed upon had been 800 florins.
[57] L. Passerini: Gli Alberti di Firenze, Flor. 1870, i. 118; ii. 227.
[58] Commissioni di Rinaldo degli Albizzi per il comune di Firenze
dal 1399 al 1433. Edited by Cesare Guasti. 3 vols. Flor. 1867-73.
[59] Gio. Cavalcanti, 319: Albizzi Family. See Ademollo, as above, ii.
695. Genealogij, by Gius. Ajazzi, MS. in possession of the author.
[60] Niccolò’s conversation with Niccolò Barbadoro, in Cavalcanti as
above, p. 380 (copied, with alterations, by Machiavelli in the 4th
book of the Florentine Hist.), gives the best insight into the
feelings of the party.
[61] Vasari: Life of Lorenzo di Bicci, ii. p. 229. The building of the
Sapienza already begun, served later as a cage for lions, and is
now employed as an educational institution.
[62] Vasari: Life of Masaccio, vol. iii. p. 160.
[63] Vitæ CIII. Virorum Illustrium qui sæculo xv. extiterunt, auctore
coævo Vespasiano Florentino. (In the Spicilegium Romanum,
edited by Cardinal Angelo Mai.) Rome, 1839, reprint. Vite di
nomini illustri del secolo xv. scritte da Vespasiano da Bisticci,
stampate nuovamente da Adolfo Bartoli. Flor. 1859. Palla di Noferi
Strozzi, p. 271. Messer Leonardo is Leonardo Bruni.
[64] Vespasiano da Bisticci as above, 278.
[65] Commissioni di Rinaldo degli Albizzi, iii. 507.
[66] Gio. Cavalcanti as above, 320-327.
[67] Fabroni as above, i. 27; ii. 31, 58.
[68] L. Passerini: Genealogia e storia della famiglia Guadagni, Flor.
1874, p. 52.
[69] Cosimo’s own memoranda, Fabroni as above, ii. 96, which give
no information as to the grounds and form of the action, must be
compared with Cavalcanti’s relation, 507, which supplied
Machiavelli with his materials. The protocols of the Signory give
no information as to these proceedings.
[70] Gio. Cavalcanti as above, 558, 610.
[71] Storia Fiorentina dai tempi di Cosimo de’ Medici a quelli del
gonfaloniere Soderini. Flor. 1859. Vol. i. of the Opere inedite di Fr.
Guicciardini, illustrate da G. Canestrini, p. 4.
[72] ‘Fermare lo Stato’—to give a settled form to a Government,
introduced by the sovereign or a political party. ‘Stato’ means in
this case the rule with which they exercise it.
[73] I Capitoli del Comune di Firenze Inventario e Regesto, i. Flor.
1866.
[74] Published by D. M. Manni, Flor. 1720. Constantine Höfler has in
his history of King Rupert (Freiburg, 1861) placed the activity of
Buonaccorso Pitti in its right light.
[75] Printed by D. M. Manni Cronachette Antiche, Florence, 1733.
The history of the conquest of Pisa, printed there likewise, is
probably by his son Neri.
[76] Storia Fiorentina, chap. i.
[77] P. Litta: Genealogy of the Acciaiuoli. L. Taufani: Nicola
Acciaiuoli, Florence, 1863. Gaye has published in the Carteggio
inedita d’Artisti, i. 57-69, the remarkable letters of the seneschal
for the years 1355-56, on the building of the Certosa. Vespasiano
da Bisticci as above, 351 (on Agnolo Acciaiuoli).
[78] Vespasiano da Bisticci as above, 332. Angiolo Segni: Vita di
Donato Acciaiuoli, edited by Tommaso Tonelli, Florence, 1841.
[79] Franc. Guicciardini: Recordi di Famiglia, in his Opere inedite, x.
[80] Description and narrative which Vespasiano da Bisticci, 525,
gives of Alessandra de Bardi Strozzi and her sad fate, give a deep
insight into the miseries of this time.
[81] Commissioni di Rinaldo degli Albizzi, iii. 651, 669.
[82] Commissioni, iii. 672, 677.
[83] Idem, 680.
[84] Vespasiano de Bisticci as above, 417.
[85] L. Basserini: Baldaccio da Anghiari, in the Arch. Stor. Ital., 3, iii.
131, 166. The author is of the opinion that the connections of
Baldaccio to the Pope Gregory IV., still residing in Florence, were
the cause of the Medicean party wishing to get rid of him.
[86] Gio. Cavalcanti, I. c. ii. 195.
[87] Register of 1458, Canestrini, as above, 168. Progressive scale,
id. 213.
[88] Gio. Cavalcanti as above, ii. 210.
[89] Etiam nobis esset reputatio et utilitas si Papa hic veniret.
Rinaldo degli Albizzi, Commissioni, iii. 589.
[90] C. Milanesi, ‘Osservazioni intorno agli esemplari del decreto
d’unione della chiesa Greca con la Latina che si conservano nella
biblioteca Mediceo-Laurenziana o nell’Archivio di Stato,’ with
Greek and Latin text of the decree of union, in the Giorn. stor.
degli Arch. tosc. i. 196-225. This is not the place to refer to the
newest historico-critical literature on this subject.
[91] Fabroni as above, ii. 163.
[92] Life of Eugenius IV. as above, 16.
[93] Life of Agnolo Acciaiuoli as above, p. 357.
[94] Giannone, Storia civile del Regno di Napoli, book xxvi. chap. 2.
[95] Ricordi storici di Filippo di Cino Rinuccini dal 1282 al 1460,
colla continuazione di Alamanno e Neri suoi figli fino al 1506 per
cura di G. Aiazzi, Flor. 1840, lxxxix.
[96] Letter of Pius II., and his answer, in Fabroni, ii. 254.
[97] Document of the purchase of the ‘sclava,’ twenty-two years
old, for the price of 60 ducats, Fabroni, ii. 214.
[98] Fabroni as above, ii. 251.
[99] Idem, 253.
[100] The list of the masses ordered by Piero de’ Medici after his
father’s death, and the grants for mourning habits to the
members and servants of his family, among them five chamber-
women and four maids (schiave), are given by Fabroni, ii. 254.
[101] M. Ficino, Epistol. i. 85.
[102] Fabroni, ii. 257.
[103] Litta, ‘Family Tornabuoni,’ in the Famiglie celebri Ital.,
Ademollo as above, iv. 1200. The Tornabuoni became extinct in
1635, and the name and inheritance of the Tornaquinci, extinct in
1790, passed to the branch of the Medici which is still flourishing
in Florence.
[104] January 1, 1448, after Florentine style (annus ab
incarnatione, i.e. from March 25), is the same day 1449.
[105] Laurentii Medicis Vita, per Nicolaum Valorium edita ad
Leonem X.P.M. First printed by L. Mehus after a Laurentian MS.,
Flor. 1749; more recently in Philippi Villani Liber de civitatis
Florentiæ famosis civibus et de Florentinorum litteratura principes
fere synchroni scriptores. Ed. G. C. Galletti. Flor. 1847, p. 161. An
Italian translation had already appeared, Flor. 1568. Niccolò Valori
was a pupil of Marsilio Ficino, and a member of the Platonic
Academy.
[106] On Gentile of Urbino, as he was commonly called, see A. M.
Bandini, Specimen literaturæ Florentinæ, sæc. xv., Flor. 1752, i.
182; ii. 111. Desjardins-Canestrini, Négotiations diplomatiques de
la France avec la Toscane, Paris 1859, i. 317. Embassy of Becchi
and Piero Soderini to King Charles VIII., 1493, idem, 321-365.
Address to Pope Innocent VIII. on occasion of the Neapolitan war
of the Barons, 1485, p. 205-214. Gentile, bishop of Arezzo 1473,
died April 19, 1497.
[107] Fabroni, Laur. Med. Magnif. Vita, Pisa, 1784, ii. 9.
[108] N. Valori as above, 166.
[109] Politian, Conjuratio Pactiana, at the end.
[110] Litta, Family Pazzi, Ademollo, as above, iv. 1228.
[111] As above, 372.
[112] For documents referring to the embassy, see Desjardins, as
above, 109, 135.
[113] Vespasiano, as above, 375.
[114] L. Passerini, Genealogia e storia della famiglia Rucellai, Flor.
1861.
[115] L. Passerini, Genealogy of the Soderini, continuation of Litta’s
Famiglie celebri.
[116] Vasari, Life of Donatello, iii. 250. For illustration see Litta.
[117] Cronica di Napoli di Notar Giacomo, pubbl. da P. Garzilli,
Naples, 1845, p. 100. Giovan. Pietro Cagnola, Storia di Milano
(‘Cronache Milanesi,’ in the Arch. stor. ital. iii. Flor. 1842), informs
us (p. 170) of Don Federigo’s arrival and the causes of the delay
of the wedding, which was connected with Jacopo Piccinino’s
affairs (see below, p. 219). Ippolita arrived on September 14 at
Naples, after having waited two months in Siena, till her father
permitted her to proceed. (Cronica di Notar Giacomo, 112;
Cagnola, 171.)
[118] Rinuccini, Ricordi, xcv.
[119] Luigi Pulci’s letter, see Roscoe, App. ix., but more correct in
the Lettere di Luigi Pulci a Lorenzo il Magnifico e ad altri (edited
by Salvatore Bongi), Lucca, 1868, p. 1. There are various notices
of the writer here, but unfortunately no notes to the letters,
which are often unintelligible, and will probably remain so, in
spite of all notes, with regard to various persons mentioned.
[120] Fabroni, l. e., ii. 51 seq.
[121] Rinuccini, Ricordi, xcvi.
[122] Fabroni as above, ii. 47; letter of March 22, idem, 49.
[123] Desjardins as above, 136-141.
[124] Guicciardini, in whom the traditions of grandfather and
granduncle are united in cap. ii. of the Storia fiorentina, p. 18;
Machiavelli, who, in consequence of the death of Girolamo, his
ancestor in Cosimo’s time, could not be very favourable to Luca
Pitti and his adherents, in book vii. of his history. G. M. Bruto,
Florentinæ historiæ, book ii.
[125] On this affair, which has never been fully cleared up, see
Ricotti, Storia delle Compagnie di Ventura, iii. 191, where the
judgment of contemporaries is referred to; and Canestrini,
Documenti per servire alla storia della Milizia italiana, Flor. 1851
(Arch. stor. ital. xv.), series lxxviii. 179-184, where the letters of
Francesco Sforza and the King are to be found.
[126] Vespasiano da Bisticci as above, p. 360.
[127] Rinuccini, Ricordi, xcix.
[128] Lettera di Jacopo Acciaiuoli ad Agnolo, Naples, September 6,
1466. See Fabroni as above, ii. 28. The time of Lorenzo’s journey
cannot be precisely fixed, but it must have taken place before or
towards the middle of August, for the later events leave no time.
Jacopo writes: ‘Lorenzo di Piero fu quà. Il S. Rè li fece carezze
assai.’
[129] Paradiso, xv. 109.
[130] Francis Joseph Sloane, who died in 1871. The villa passed by
inheritance to the Russian family Boutourlin.
[131] The name Camaldoli, which is borne in Florence by two
districts of the city inhabited by the poorer classes—that of San
Frediano and that behind San Lorenzo—is derived from the
Camaldulensian church of San Salvatore, pulled down in 1529,
which stood near the city walls on the left bank of the Arno. To
the district of San Lorenzo the name was transferred from the
other behind Sta. Croce, and at Porta San Niccolò there are other
districts so named.
[132] The prevailing opinion among the opponents of the Medici of
the events of 1466 is expressed decidedly in the notices of
Alamanno Rinuccini, who continued those of his father Filippo
from the year 1460, as above, coll. xcix.
[133] Cronachetta Volterrana di autore anomino del 1362 al 1478,
given by M. Tabarrini in the Arch. Stor. Ital. App. iii. 317.
[134] The history of the conspiracy, in Machiavelli, b. vii., entirely
reverses the chronology of the occurrences, excepting the
speeches and letters, which correspond but little to the reality.
Jacopo Pitti Istoria fiorentina, p. 19, seq., gives a clear narrative
of the proceedings. G. M. Banto, in his third book, is diffuse and
tedious with his imaginary speeches. The version of Cardinal
Ammanati in the Rerum suo tempore gestarum Commentarii,
Milan, 1506, is to be consulted. Scipione Ammirato gives in his
twenty-third book, as usual, a useful but very dry relation. The
remarkable letters and other writings of the Acciaiuoli and Neroni,
as well as the letters of King Ferrante’s private secretary,
Antonello Petrucci, to Lorenzo, November 10, 1466 (see Fabroni
as above, ii. 28-38), reveal the persons and circumstances better
than the declamations of antiquated historians. The conspiracy in
itself would scarcely justify a detailed account if it did not afford
so clear a view of the manœuvres of the political parties in
Florence at that time.
[135] Fabroni as above, ii. 38.
[136] Both letters, see Desjardins as above, p. 141 seq.
[137] Fabroni as above.
[138] Letter of January 10, 1467, to the ambassadors Antonio
Ridolfi and Giovanni Canigiani; see Desjardins, as above, p. 144.
[139] Instruction for Fr. Nori, do. p. 147.
[140] Diotisalvi to Pigello, Malpaga, October 8, 1466; see Fabroni as
above, ii. 38.
[141] Inferno, xxvii. 37. The translation of Philalethe gives in the
historical sketch appended to this canto a careful view of the
confused condition of the Romagna in Dante’s days. We have in
the continuation of Litta’s work by L. Passerini the genealogies of
most of the great families of Romagna, the Malatesta, Ordelaffi,
Manfredi, and Da Polenta.
[142] Instead of the exceedingly numerous works on the history of
Ferrara, only Litta’s Genealogy will be quoted here.
[143] R. Reposati Della Zecca di Gubbio, Bologna, 1772. James
Dennistoun, Memoirs of the Dukes of Urbino, London, 1851. F.
Ugolino Storia dei Conti e Duchi d’Urbino, Flor. 1859.
[144] N. Ratti Della Famiglia Sforza, i. 144 seq.; Litta, Sforza Family.
[145] Fabroni, Cosm. Med. Vita, ii. 169.
[146] Giovanni Gozzadini, Memorie per la Vita di Giovanni II.
Bentivoglio, Bologna, 1839.
[147] The most abundant material for the history of the war and
peace of 1467-68 is afforded by Fr. Trinchera, Codice Aragonese,
i. (Naples 1866), which contains King Ferrante’s correspondence.
S. Romanin, Storia di Venezia, b. xi. (vol. iv.) gives the account,
having used D. Malipiero’s Annali, Veneti i.
[148] Rinuccini, Ricordi, s. cv.
[149] Malipiero as above, p. 215.
[150] Compiègne, September 18, 1468; see Desjardins as above, p.
151.
[151] Guichenon in his Histoire de la maison de Savoye rather
doubts the strange fact, contrary to Corio. See Muratori, Annali,
1468.
[152] Vespasiano da Bisticci as above, p. 228.
[153] The inscription reads:
‘Detisalvio . Neronis . f . equiti. floren. viro.
integerr. qui. domi. forisq. multa. pro.
rep. optime. gessit. patriae. libertatem.
vehementer. amavit. demum. inter. fortunæ.
procellas. summa. cum. laude. vixit.
ann. LXXXI. mens. VI. dies XII. filii.
unanimes. patri. pient se. et. b. m.
pos. obiit. anno Christi MCCCCLXXXIIIIII. kl. Aug.’
In an elegy to Lorenzo de’ Medici, probably written after the end
of the Colleonic war, Angelo Poliziano (Prose volgari inedite, &c.,
p. 219) refers to this man’s fate:
‘Diotisalvi left in hasty flight his home;
Pining in exile now, he mourns the slow-footed time.’
[154] Cronachetta Volterrana as above, p. 326. Pecori, Storia di San
Gemignano, Flor. 1853, p. 242.
[155] Rinuccini, Ricordi, s. cviii.
[156] L. Pulci, Lettere, p. 31.
[157] See A. Cappelli, Lettere di Lorenzo de’ Medici conservate
nell’Archivio palatino di Modena in Atti e Memorie delle R. R.
Deputationi di storia pratria per le provincie Modenesi Parmensi, i.
249.
[158] Purgatorio xxv. 13. Par. iii. 46.
[159] Ricordi d’una giostra fatta a Firenze a dì 7 Febbraio 1481
(1469), after a Magliabechi MS. printed by P. Fanfani in Il
Borghini, vol. ii. (Flor. 1864) pp. 473-483, 533-542. Tournaments
were also publicly proclaimed, as at the carnival, 1467, at
Perugia. See Giornale d’erudizione artistica, ii. 208.
[160] In the elegy to Lorenzo mentioned above (p. 260), Politian
alludes to the tournament, which is also sung by Ugolino Vieri
(Verino).
[161] See Litta, Fam. Orsini, table ix. xxiii. In San Salvator in lauro
at Rome, where Latino Orsini lies buried (his monument belongs
to the seventeenth century) the beautiful monument of Clarice’s
mother is to be seen, with a statue of her reposing in death, and
beneath, Magdalena Ursina pudicitiæ exemplum; in the niches,
statuettes of the Madonna, St. Benedict (missing), and St.
Scholastica; above, the Orsini arms, with the inscription:
Ranaldus. Vrsin. archiepus. florent. parenti. b. m.
pientiss. p.
For illustration see Litta.
[162] Tre lettere di Lucrezia Tornabuoni a Piero de’ Medici ed altre
lettere di vari concernenti al matrimonio di Lorenzo il Magnifico
con Clarice Orsini. (After the MSS. of the Flor. Archives edited by
Cesare Gnasti), Florence, 1859.
[163] The persons named in the letter are: Giovanni Tornabuoni;
Cardinal Latino Orsini, also called Monsignore, the title
(Illustrissimo e Reverendissimo Monsignore) which the cardinals
bore to the times of Urban VIII.; Clarice’s two brothers—Orso
(called Organtino, who married a Savelli), and Rinaldo
(afterwards Archbishop of Florence); Clarice’s uncle Lorenzo, lord
of Monterotondo; her uncles Latino, Giovanni, Archbishop of Irani
and Abbot of Farsa, Napoleon, lord of Bracciano, and Roberto,
mentioned above. Of the three young girls mentioned, Maria can
only be Piero’s natural daughter, the wife of Leonetto de Rossi
and mother of Luigi de Rossi, created a cardinal by Leo X.; Bianca
is the wife of Guglielmo de’ Pazzi. Who Lucrezia is, is obscure.
Guasti (as above, p. 10) is mistaken in thinking all three to be
daughters of Piero and Lucrezia. In the Ricordo quoted by him
(Fabroni, Laur. Med. Vita, ii. 9), Lorenzo only mentions Bianca
and Nannina Rucellai.
[164] Guasti, as above, 12.
[165] Guasti, as above, p. 12.
[166] Fabroni, as above, ii. 39.
[167] The different letters, see Guasti, as above, pp. 14-16.
[168] The description of the marriage in Delle Nozze di Lorenzo de’
Medici con Clarice Orsini nel 1469 informazione di Piero Parenti
Fiorentino, Flor. 1870. The writer says at the beginning that he
has the details from Cosimo Bartoli, one of the speakers at the
festivities. The Magliabechi MS., from which the writing is taken
(Strozzi MSS. xxv. cod. 574), mentions no author; the list of the
MSS., however, gives Piero, the son of Marco Parenti, the author
of a chronicle which has remained in MS., which will again be
mentioned. A similarity between the writings of the latter and this
‘Information’ would be hard to discover, however. The opinion of
the unmentioned editor, that the report was addressed to Filippo
Strozzi the elder then in Naples, has slight foundation.
[169] This valuable little book is enumerated as No. 27 in the
inventory of valuables found in Lorenzo’s house after his death.
[170] A letter written from Careggi on July 13 by Piero to his wife,
who was in town, and which is difficult to understand on account
of allusions to unknown circumstances, arouses the suspicion that
Piero was not quite pleased with this embassy. ‘Tu sai che mal
volentieri decti licentia a Lorenzo per molti rispecti et maxime per
non fare dimostratione di questa mandata. Di a Lorenzo che non
esca dello ordine in cosa alcuna e non faccia tante melarancie
non essendo imbasciadore ch’io non determino che paperi
menino a bere l’oche’ (Med. Arch.).
[171] Fabroni, as above, ii. 53.
[172] As above, p. 56.
[173] Vasari in Verrocchio’s Life, as above, v. 142. Monuments
sépulcraux, Plate XIV.
[174] Fabroni, as above, ii. 42.
[175] Storia Fiorentina, chap. ii.
[176] ‘Discorso di Alessandro de’ Pazzi al cardinale Giulio de’ Medici’
(Pope Clement VII.) anno 1522 in the supplement to Jacopo
Pitti’s Istoria Fiorentina (Arch. stor. Ital. i. Flor. 1842), p. 420 seq.,
and Introduction to the same by Gino Capponi, 413 seq.
[177] Del Reggimento di Firenze, libri ii. In the Opere inedite, ii.
Flor. 1858, 1-234.
[178] Beside Machiavelli, Gio. Mich. Bruto has this story in his book,
and according to custom made Piero deliver a speech to his
partisans, filling many pages (‘Ita ad illos loquutus fertur,’ i. 380
seq.). But this author cannot be considered as an authority. A
better one is Vespasiano da Bisticci, who, however, limits the
project of recall to Agnolo Acciaiuoli. The Neapolitan ambassador,
Marino Tomacelli, is said to have been present at Piero’s interview
with the heads of the party.
[179] Despatch of King Ferrante to Antonio Cicinello and Marino
Tomacelli, February 26, 1467; see Trinchera (as above), 65.
[180] Despatch of August 14: Trinchera, 209.
[181] Del Reggimento di Firenze, as above, 34, 64, 97.
[182] Niccolo Roberti to Duke Borso, Florence, December 4, 1469;
see Cappelli, as above, i. 250. ‘I quali due ultime (i.e. Pitti and
Martelli) soggiunsero che si aveva a riconoscere uno signore e
superiore che avesse unanime a trattare tutte le cose occorrenti
concernenti lo Stato di questa eccelsa Signoria.’
[183] Guicciardini, Storia Fiorentina, chap. ii. Machiavelli has
embellished the story in his fashion, and spoken of Lorenzo and
Giuliano as being present at the consultation, which is very
unlikely. Roscoe, chap, iii., has been led by this incongruous
statement and Lorenzo’s notices to believe the whole affair to be
fictitious. On the day after the consultation they went to the
Medici.
[184] Rinuccini, Ricordi, s. cxiii. cxiv. cxviii.; Guicciardini, Storia
Fiorentina, chap. iii.
[185] Fabroni, as above, ii. 47.
[186] The Medicean Archives (divisione avanti il principato), contain
an endless series of letters from princes and great men, which
afford a proof of the widely-spread and intimate connections of
Lorenzo and his family.
[187] Luigi Pulci, Lettere, p. 38, and later.
[188] Bern, Corio, b. vi. chap. ii. Rinuccini, Ricordi, s. cxv. cxvi. L.
Pulci, Lettere, p. 51 (Letter from Naples, March 19). G. Tommasi,
Sommario della Storia di Lucca, Flor. 1847 (vol. x. of the Arch.
Stor. Ital.) 336.
[189] Rinuccini, Ricordi, s. cxxii. The king is called ‘Re di Dacia o
signore di Norvecia.’ Beneath the arch of the Porta San Gallo, we
read on a marble tablet a remembrance of a successor of
Christiern, King Frederick IV., who visited Venice and Florence in
1708, and had great pleasure in contemplating the treasures of
art. The Medici, whom his predecessors had seen rise so
brilliantly, were then almost extinct.
[190] L. Pulci, Lettere, p. 96 (Letter of June 16, 1475).
[191] Fabroni, as above, ii. 66 seq. Desjardins, 161 seq. The
Dauphin, afterwards King Charles VIII. was born in 1470,
Beatrice of Aragon in 1457. In 1476 she married Mathias
Corvinus, King of Hungary.
[192] L. Pulci, as above, p. 63 (Fuligno, May 20, 1472).
[193] Med. Arch. Filza, 34.
[194] Cosimo Rucellai, Bernardo’s son and Lucrezia’s grandson;
born 1468, died 1495. The marriage with Madonna Argentina,
daughter of Gabriel Malaspina, Marchesa of Fosdinovo, took place
only in 1492. (The widow married Piero Soderini, later
Gonfaloniere for life.) The expression ‘nuova di zecca,’ or ‘zecca al
gitto’ for unexpected news, is still used in Tuscany at the present
day.
[195] L. Pulci, as above, p. 83.
[196] When Muratori, in vol. xxiii. of the Scriptores rer. Ital., printed
the Commentariolus de bello Volaterrano, a. 1472, by Antonio
Ivano (Hyvaniss) of Sarzana, then Chancellor of Volterra, he
remarks with his usual insight how cautiously one must proceed
in employing this apologetic official account, evidently ordered in
Florence, of a man not well spoken of. (Ivano came to Florence in
March, 1473, as ambassador from Sarzana; see Gaye, Carteggio
inedito, vol. i. p. 251. There is a description by him of the ruins of
Luni.) The anonymous ‘Cronachetta Volterrana’ already quoted,
which M. Tabarrini gives in the Arch. Stor. Ital., App. vol. iii., is
also favourable to the Florentines. Machiavelli and G. M. Bruto,
who copied from him, have an account not only insufficient but
incorrect, in respect to the causes which led to the quarrel;
Alamanno Rinuccini, as above, s. cxx., has only short notices of
the war; Scipione Ammirato has no desire of agreeing with
Machiavelli. How Raffael Maffei (Volterranus) regarded the matter
is shown by his ‘Comment. Urb.’ and the whole of his proceedings
towards the Medici. Stan. Gatteschi has in his translation of Bruto
(vol. ii. p. 90, seq.) investigated the origin of the whole conflict
with the help of documents. The name of Lorenzo de’ Medici is
not to be found in the contract which mentions the members of
the trading company, but in the contemporary ‘Ricordi’ of
Zaccharia Zucchi (see Fabroni, as above, vol. ii. p. 62). Francesco
Guicciardini (Stor. Fior. chap, iii.), who had the traditions of his
own house at his disposal, although he remarks that the fact was
unknown to him, also speaks of Lorenzo’s selfish intentions in the
affair, and how he oppressed the Volterrans, because he feared a
diminution of their general respect if he did not succeed in his
purpose. Louis XI.’s letter to the Florentines of June 3O, wherein
he complains of the silence of the Republic about the Volterran
affairs, is in Desjardins, as above, p. 157; the letter from the
Signori of July 1, p. 58; and the answer to the first of July 30, p.
160.
[197] Fabroni, as above, vol ii. p. 63.
[198] Lorenzo to Sixtus IV., November 21, 1472. See Fabroni, vol. ii.
p. 61 (Quello che essa ha a me tanto liberalmente in questa
causa promessa). The letters of Cardinal Ammanati from 1473,
idem. pp. 58-61.
[199] Rinuccini, Ricordi, s. cxxi., cxxii.; Cronaca di Notar. Giacomo,
p. 126. Angelo Politiano refers to the presence of Eleonore in his
beautiful elegy on the death of Albiera degli Albizzi—Prose volgari
inedite, &c., p. 140. (‘Cum celebres linquens Sirenum nomine
muros—Herculeumque petens regia nata torum,’ &c.)
[200] Med. Arch.
[201] See Cappelli, as above, p. 251.
[202] L. Passerini, Manfredi Family. Ratti, Della Famiglia Sforza, vol.
ii. p. 35, seq.
[203] Litta, Vitelli Family. A. Fabretti, Capitani venturieri dell’Umbria,
vol. iii. p. 37, seq. Roberto Orsi, De obsidione Tifernatum Città di
Castello, 1538, reprinted by D. M. Manni in vol. ii. of J. M. Tartini’s
Supplements to the Muratori Collection.
[204] June 28, 1474: Fabroni, as above, vol. ii. p. 105.
[205] Florence, December 25, 1475. See D. Moreni, Lettere di
Lorenzo il Magnifico al S. P. Innocenzo VIII. Flor., 1830, p. 1, seq.
The letter addressed to Sixtus IV. is here incomprehensibly
referred to his successor.
[206] Ricordi, s. cxxiii. cxxiv.
[207] Chronicle of Piero di Marco Parenti, MS. of the
Magliabechiana; Letter of Angelo Poliziano to Madonna Lucrezia
de’ Medici of May 31, 1477, in Poliziano’s Prose Volgari Inedite,
&c. p. 49.
[208] Cronaca di Notar Giacomo, pp. 134-137.
[209] The date results from Morelli’s Chronicle. See T. Dellungo in
G. Carducci’s edition of Poliziano’s Italian Poems, Flor. 1863, p.
xxvii. Piero de’ Medici mentions the desire of his younger son in a
letter to Lorenzo, then at Milan, Fabroni, l.c. vol. ii. p. 52.
[210] Vasari, vol. x. p. 293. C. Quarti, Le Ville Bandinelli a
Pizzidimonte, in Belle Arti Opuscoli descritivi e biografici, Florence
1874, p. 345, &c.
[211] Ricordi, s. cxxv.
[212] L. Pulci, l. c. p. 99.
[213] Rinuccini, Ricordi, s. cxxvi.
[214] Rome, Oct. 15, 1474, Med. Arch.
[215] ‘Ad Franciscum Salviatum,’ 1473, in the Prose Volgari, &c. p.
113. He calls him ‘dulcis Salviate,’ and says ‘Parva peto, dare
magna soles; da parva petenti.’
[216] Niccolò Bendedei to Ercole d’Este. See A. Cappelli. l. c. p.
252.
[217] Chronicles of Giovanni di Juzzo, in the Cronache e Statuti
della Città di Viterbo, ed. Ignazio Ciampi, Flor. 1872, p. 414.
Fabretti, Capitani dell’Umbria, vol. ii. p. 307.
[218] Sixtus IV. to Federigo di Montefeltro, Rome, June 9, 1477.
(Arch. of Urbino, in the Tuscan Central Arch., Cl. I. Div. G., Filza,
104.)
[219] Malavolti, Historia di Siena, part iii. book 4, p. 71.
[220] Med. Arch., Filza 34.
[221] Fabroni, 1. c. vol. ii. p. 106.
[222] A 1. c. p. 160.
[223] Guicciardini, Storia Fior., p. 34, and Ricordi di Famiglia.
Jacopo de’ Pazzi’s letters to Lorenzo, Fabroni, 1. cit. vol. ii. p. 104.
[224] Fabroni, 1. c. vol. ii. p. 105.
[225] The confession of Giovan Batista da Montesecco, in the
Excusatio Florentinorum, drawn up by the Chancellor
Bartolommeo Scala in Fabroni, vol. ii. p. 167, gives the clearest
insight into the course of the conspiracy, and the measure of
Pope Sixtus IV’s. share in it. We have not the least ground to
doubt the truth of the statements contained in this document.
The best-known contemporary account of the occurrences is
Angelo Poliziano’s De Coniuratione Pactiana Commentarius,
printed in the year of the conspiracy, and extremely rare,
reprinted in the edition of Poliziano’s works which appeared at
Bâle, 1553, and then carefully re-edited, with many valuable
additions by Giovanni Adimari. A translation made, as it seems,
after the middle of the sixteenth century, was printed in the Prose
Volgari inedite, &c., di Angelo Poliziano, Flor. 1867, pp. 87-105.
There was no lack of later translation. The relation of the facts is
undoubtedly correct; the opinions regarding the acting persons
are those of a partizan. The later ones follow that of Poliziano in
all essentials, whom, however, G. M. Bruto rightly accuses of
partizanship. The best and most reliable representation,
according to the documents, is that in Scipione Ammirato, in the
twenty-fourth book of his Florentine History, printed separately
with remarks, Flor. 1826. Fabroni, as usual, has selected the most
important from the documentary materials, as far as they were at
his disposal in Florence.
[226] Med. Archiv.
[227] Rome, January 15, 1478. (The delivery of the letter followed
on the 22nd, according to Lorenzo.) Med. Arch.
[228] Med. Archiv.
[229] List of Filippo Strozzi after a Riccardi MS. in Vita di Filippo
Strozzi il vecchio, scritta da Lorenzo suo figlio, per cura di
Giuseppe Bini e Pietro Bigazzi. Flor. 1851, p. 55, seq.
[230] Piero di Marco Parenti, Flor. Hist. MS. of the Magliabechiana.
See above, p. 277.
[231] Filippo Strozzi relates that Nori was slain by the side of
Giuliano.
[232] Concerning the different sentences pronounced on command
of the Magnifici Octoviri from April 28 to May 18 and August 3rd,
1478, see Sententiæ Dni. Matthæi de Toscanis de Mediolano
Potestatis, Florentiæ, 1477-1478, from the Strozzi MSS. G.
Adimari, l. c. pp. 136-155. A less correct list of those executed
and killed after a Magliabechian MS. in the Appendix to the
separate imprint of Scip. Ammirato’s Report, pp. 86-88. On June
9, 1478, Sforza degli Oddi wrote to Lorenzo to recommend to him
Madonna Andrea, widow of Messer Gentile de Graziani, a
Peruginese emigrant, who had perished in the tumult (Med.
Arch., Filza 36, see Cronache di Perugia, vol. ii. p. 589).
[233] Letter of May 22, 1478, Med. Arch.
[234] Fabroni, p. 111. (Ex cod. 170, Provision. Reip. Flor.).
[235] See book v. The palace in the Borgo degli Albizzi, belonging
to a branch of the family in the present day, with the large
garden, whose portal in the Via dell’Orinolo was ascribed to
Donatello, has lately disappeared in building the National Bank.
[236] Vasari’s assertion that these libellous pictures are by the hand
of Andrea del Castagno arises from an anachronism.
[237] Vasari, in the Life of Verrocchio, vol. v. p. 152. According to
this description, one might suppose that the figures were still
existing at Vasari’s time. Other Medicean portraits (Voti), in the
Annunziata were destroyed after the revolution of 1527.
[238] Letter to Gio. Lanfredini of August 18, 1487, Med. Archiv. The
priorate of Capua came later to Leone Strozzi, the son of Filippo
and Clarice de’ Medici, Lorenzo’s granddaughter.
[239] Vespasiano da Bisticci, l. c. p.
[240] Fabroni, l. c., ii. 116.
[241] Romanin, iv. 389.
[242] In the document, Synodus florentina, cap. ix.
[243] Allegretto Allegretti, Diarj Senesi; Muratori, R. It. Scr., xxiii.
col. 784.
[244] Bull, see Rainaldi, Annales Eccl., x. 582 et seq., and Fabroni,
l. c. ii. 121 et seq.
[245] Rome, June 1478, Med. Arch.
[246] Instructio pro. R. Card. Mantuano, &c. Copy without date.
MSS. Capponi, cod. xxii. cat. no. 1230.
[247] Letter of the Doge Andrea Vendramin. Capponi MSS. cod.
cccxiii.
[248] Romanin, l. c., iv. 390.
[249] Cronaca di Notar Giacomo, pp. 128-132. The statement of
Barante (Histoire des ducs de Bourgogne, ‘Charles the Bold,’ b.
iv.), that Campobasso came to France with the Anjou prince, is
erroneous according to this. The condottiere belonged to the
Aragonese party. In Naples the defeat at Nancy was ascribed to
his treason, Cronaca, 1. c. p. 133.
[250] Idem, p. 129.
[251] See first, Fabroni, p. 119; also Desjardins, p. 171; French, in
Kervyn de Lettenhove, Lettres et Négociations de Philippe de
Commines, i. 173.
[252] The documents relative to Commines’ mission. See Kervyn de
Lettenhove, i. 173-182.
[253] Florence, June 19, 1478. See Fabroni, p. 132.
[254] Kervyn de Lettenhove, iii. 11.
[255] Mémoires, vi. chap. v.
[256] Archives of Urbino (Tuscan. Central Arch.), class i. div. iv. 104.
[257] Brief of Sixtus IV. to the parish of Perugia, Rome, June 10,
1478, in the Cronache e Storie di Perugia, ii. 580.
[258] Divine Comedy, Purg. xiv. 48.
[259] Divine Comedy, Inferno, xxix. 46.
[260] The best details of the campaign of 1478-9 are given in
Allegretti’s Diarj Senesi Sanesi, 1. c., 784-797.
[261] Rainaldi, Ann. Eccl., 1. c., p. 585.
[262] Roscoe, Illustrations, Doc. v., Heidelberg edit., iv. 199.
[263] Fabroni, ii. 136-166. See above, p. 387.
[264] Letter of July 25, 1478, in Fabroni, ii. 130.
[265] G. M. Canale, Nuova Istoria della Republica di Genova, iv.
212.
[266] Rosmini, Istoria di Gian Jacopo Trivulzio, Mil. 1815, i. 31 seq.;
ii. 31 seq.
[267] Rainaldi, Ann. Eccl., 1. c., p. 591; Kervyn de Lettenhove, 1. c.,
iii. 12.
[268] Kervyn de Lettenhove, l. c., i. 185.
[269] Mémoires, 1, vi. chap. 5.
[270] Warrant of Louis XI. for Lorenzo de’ Medici and Commines,
July 13, 1478. Warrant for Commines to grant the investiture of
the same date, in Kervyn de Lettenhove, i. 185-188. Despatches
of the Milanese ambassadors at Florence, &c., ib. iii. 13-29.
[271] Ib., 1. c., pp. 190, 191.
[272] Letter of the Signoria, August 23, 1478; Desjardins, 1. c., p.
172; Kervyn de Lettenhove (French), i. 190; Letter of Lorenzo in
Kervyn, p. 191. When Commines says in his memoirs, ‘Je
demourai au dit lieu de Florence un an, ou dans leurs territoires,’
this is incorrect. He did not arrive at Turin much before the
middle of June; went from thence to Milan, Florence, and Rome;
and at the beginning of October was again in Lyons.
[273] Letter of Louis XI. to Lorenzo de’ Medici, November 1, 1478,
and instructions for the ambassadors, from the Medici Archives,
Desjardins, 1. c., vol. i. pp. 174-184.
[274] Rainaldi, Ann. Eccl., l. c., pp. 588-590.
[275] Malipiero, Annali Veniti, i. 247; Romanin, l. c., iv. 391
[276] The demand that the caricature of the Archbishop of Pisa
should be erased is dated February 9, 1479. Gaye, 1. c., p. 574.
[277] Romanin, 1. c., iv. 382.
[278] Notices of the treaties in Rome from the documents of the
Medicean Archives, Desjardins, 1. c., i. 184-186; Scip. Ammirato,
1. c., pp. 131-136; Rainaldi, Ann. Eccl. x. 587 seq.
[279] Cronache Ec. di Viterbo, p. 420 seq.
[280] Scipione Ammirato, book xxiv. Pezzana, Storia di Parma, iv.
86-128.
[281] Vincenzo Acciaiuoli, Vita di Piero Capponi, in the Arch. Stor.
Ital., iv. pt. 2, p. 17. Tommasi, Storia di Lucca, p. 338.
[282] Rosmini, Storia di Milano, iii. 82. Pezzana, 1. c. p. 144 seq.
[283] Despatches of December 30, 1478, January 13, and July 18,
1479, in Kervyn de Lettenhore, l. c. i. 232, 239, 271.
[284] Despatches of Visconti and Cagnola, Orleans, September 1,
1479, l. c. p. 283 seq.
[285] Letter of Antonio Pucci to Lorenzo de’ Medici, Flor. June 18,
1479; see Fabroni, l. c. p. 199.
[286] Med. Arch.
[287] D. Malipiero, l. c. i. 482.
[288] Mémoires, 1. vii. c. 2.
[289] Cronache Milanesi, pp. 186, 187.
[290] Molini (G. Capponi), Documenti di Storia Italiana, Flor. 1836,
i. 297.
[291] Instructio D. Nicolai Martelli ituri ad Laur. Medicem, see
Fabroni, l. c. ii. 189 seq. ‘Inter os et offam multa accidere
possent.’ ‘Jactet aleam.’
[292] Pier Filippo Pandolfini to the Magistracy of Ten, Milan,
November 22, 1479. Fabroni, pp. 196-199.
[293] See above, Bk. 3, ch. i. Filippo says: ‘Che totalmentegli si
rimetteva nelle braccia e che in quello modo Sua Maestà lo
volessi o grande o basso dentro o fuori, era contento, di modo
che S. M. rendesse pacie alla città e le terre tolte.’—Idem. l. c. p.
58.
[294] Guicciardini, Storia Fiorentina, cap. vi.
[295] The danger which Lorenzo de’ Medici exposed himself to has
been made much greater in later times than it really was. Jacopo
Pitti (l. c. p. 25) says clearly that safety had been promised him
both by the king and the pope (?); but it was believed that he
gave himself into Ferrante’s power unconditionally (liberamente),
in order to increase the fame of the latter and the splendour of
his own patriotism. The danger lay less in what might happen at
Naples than what might occur at Florence from a longer absence.
Guicciardini hints at this (p. 59). Confidence shown in a man like
the king was never without danger however.
[296] Lettere de’ Principi (Venet. edit. 1581), i. 3. Translated by
Roscoe, i. 221.
[297] Lettere di Lorenzo de’ Medici from the Modena Archives,
edited by A. Cappelli. Atti e Memorie della R. Diputazione di
Storia patria per le prov. Modenesi e Parmensi, i. 230.
[298] Malavotti, Historia di Sienna, part iii. p. 176.
[299] B. Scala’s Letter (see Fabroni, p. 205) has the date of
December 5, which must be a mistake, as the Signoria was first
informed on the 7th.
[300] Lorenzo de’ Medici to the Ferrarese ambassador Antonio
Montecatino, Pisa, December 10; see Cappelli, l. c. p. 240.
[301] Cronaca di Notar Giacomo, p. 145.
[302] Fabroni, i. 103 seq., has an address to the king spoken by
Lorenzo, evidently a later oratorical production.
[303] Guicciardini, l. c. chap. vi. p. 58.
[304] Fabroni, l. c. ii. 201, 202. Agnolo della Stufa to Lorenzo de’
Medici, January 4, 1480; Idem. pp. 207-210.
[305] Carlo Visconti to the regency at Milan, Tours, January 30,
1480; see Kervyn de Lettenhove, i. 318.
[306] Guicciardini, l. c.
[307] Bart. Scala to Lorenzo de’ Medici, January 12, 1480; see
Fabroni, l. c. ii. 202-204.
[308] Lorenzo de’ Medici to the Ten, Naples, January 3, 1480;
Fabroni, l. c. ii. 206.
[309] Capponi MSS. xxii. p. 68 seq. (Catalogo, No. 1212). The date
is wanting in the copy; but the instruction must be of 1459, as
this year is spoken of as the present one.
[310] Fabroni, l. c. ii. 207-210.
[311] Letter of Ippolita Maria, Castel Capuano, July 3, 1480;
Fabroni, 1. c. ii. 223.
[312] (Ratti) Della Famiglia Sforza, ii. 11. See above, p. x. Lascaris’
Greek grammar, dedicated to Ippolita, appeared at Milan 1476.
[313] Diarium Parmense, see Muratori, R. It. Scr. vol. xxiii. col. 335.
[314] Alamanno Rinuccini, l. c. s. cxxxi.
[315] Agnolo della Stufa, l. c.
[316] Ercole d’Este to Ant. Montecatini, March 19, 1480; see
Cappelli, l. c. p. 253.
[317] Jacobi Volaterrani, Diarium Rom., ad. a. 1479 (1480); see
Muratori, R. It. Scr. vol. xxiii. col. 100.
[318] Ferrante to Lorenzo, Castelnuovo, March 1, 1480; Fabroni, ii.
213-216.
[319] Jacobi Volat. Diar., 1. c.
[320] Ercole d’Este to Ant. Montecatini, April 20, 1480; Cappelli, 1.
c. p. 253.
[321] Cronaca di Notar. Giacomo, p. 146.
[322] Angelo di Costanzo mentions the suspicion in his History of
Naples; but an author of the second half of the sixteenth century
is no authority. That Lorenzo, in a letter to Albino, the Duke of
Calabria’s secretary, who entertained the same suspicion (see
Fabroni, l. c. ii. 216), rejoices over Alfonso’s success and speaks
of cani Turchi, proves as little on the other side.
[323] See Fabroni, l. c. ii. 217.
[324] Jac. Volaterr, l. c. pp. 113, 118.
[325] Regola del Governo di Cura Familiare del B. Giovanni
Dominici, pubbl. da Donato Salvi, Flor., 1860.
[326] L. Mehus, Epistola di M. Lapo da Castiglionchio, Bologna,
1653. Fr. Bocchi, Elogia, in G. E. Galletti’s edit. of Philippi Villani,
Liber de civitatis Florentiæ famosis civibus, et de Florentinorum
Litteratura principes fere synchroni Scriptores, Flor. 1847, pp. 9,
12.
[327] In the decree of August 27 (Gaye, l. c. i. 573) we read:
‘Cogitantes magnifici viri priores artium et vexillifer virtutem
supremam, vitam sinceram, mores honestos et in omnibus
exemplares, religionis integritatem, doctrinam sanctam utilem et
decoram, ac vere sancte et summæ eloquentiæ vas habundans
venerabilis et omni tempore cum laude memorandi magistri Loysii
de Marsiliis de Florentiæ’, &c.
[328] The students were then placed on an equal footing with the
burghers by law, ‘tractentur ut cives populares.’ See Gaye, l. c. i.
461; Prezziner, Storia del Pubblico Studio di Firenze, Flor. 1810, i.
3; Fabroni, Historia Academiæ Pisanæ, i. 46.
[329] Extract of the decree of August 7, 1348, apud Gaye, 1.c. p.
499.
[330] L. Mehus, Ambrosii Traversarii, &c.; Latinæ Epistolæ accedit
eiusdem Ambrosii vita, &c., Flor. 1759, i. 356.
[331] G. Shepherd, Vita di Poggio Bracciolini, trad. da T. Tonelli,
Flor. 1825. The numerous corrections and additions made by the
translator of the English work which appeared in 1802 are based
on careful investigation. Tonelli arranged later a complete edition
of Poggio’s letters, the first volume of which appeared at Florence
in 1831 (Poggii Epistolæ ed. a Th. Tonellio), the second long after
the editor’s death, while the third is still wanting.
[332] Mehus, Ambr. Travers. Epist. i. 178.
[333] Savigny, History of Roman Law, &c., iii. 583 and elsewhere. A.
Kirchhoff, the manuscript collector of the Middle Ages, in
Naumann’s Serapeum, 1852, p. 17 seq. Fr. Bonaini, I libri, gli
Stazionari, i Peciari, i Copisti, &c., in the Giornale Stor. degli
Archiv. Tosc. iv. 97 seq. The price of the Corpus Juris, from the
legacy quondam Cristofani judicis, amounted to 112 Sienese liri.
[334] Lettere della B. Chiara Gambacorta Pisana (edited by Cesare
Guasti), Pisa, 1871.
[335] Commissioni, i. 86.
[336] Lettere della B. Chiara Gambacorta, p. 59.
[337] Marco Foscarini, Dei Veneziani raccoglitori di Codici, in the
Appendix to his Storia Arcana, Flor. 1843, vol. v. of the Archiv.
Storico Italiano.
[338] Gayo, l. c. i. 533.
[339] Information respecting Leonardo Bruni has been collected by
C. Monzani: Leonardo Bruni Aretino, in the Archivio Stor. Ital.,
series ii. vol. v. (reprinted in Istoria Fiorentina di Leon. Aretino,
tradotta in volgare da Donato Acciaiuoli, Flor. 1861). L. Mehus’
edition of the letters appeared at Flor. 1741. The literary Academy
of Arezzo planned (Flor. 1856) a reprint of the Florentine history
which had first appeared in 1610, with Acciaiuoli’s version
opposite, which, completed in 1473, had been published at
Venice three years later, while the original remained so long
inedited.
[340] With a Latin translation by B. Moneta, Flor. 1755; German by
C. F. Neumann, Frankfort, 1822; and new revision of the text by
L. W. Hasper, Leipsig, 1841.
[341] Gaye, 1. c. i. 545, 554, 560.
[342] Fabroni, Magni Cosmi Med. Vita, ii. 217.
[343] L. Mehus, Ambrosii Traversarii, &c.; Latinæ Epistolæ, &c.
[344] Vespasiano da Bisticci, l. c. p. 240.
[345] Vespasiano da Bisticci, 1. c. p. 439. Letters of Nicholas V. to
Marsuppini and the Signoria, October 24, 1452, p. 441.
[346] Detailed Latin biography by Naldo Naldi, Muratori, Scr. r. Ital.
vol. xx.; Vespasiano da Bisticci, 1. c. p. 444 seq. For the
introduction to the latter by Bernardo del Nero, with a short
outline and list of Manetti’s writings, as well as an Italian extract
from Naldi by one of the Ricci family, see Galletti, 1. c. p. 129
seq. Compare Apostolo Zeno Dissertaz., Voss, i. 170 seq.
[347] The original of the Statuta Populi et Communis Florentiæ is to
be found, with the MSS. of numerous other statutes, in the
Florentine archives; printed in three volumes, said to be at
Freiburg, 1778-83. See Lami, Antichità Toscane, i. 522, and N.
Salvetti, Antiquitates Florentinæ jurisprudentiam Etruriæ
illustrantes, Flor. 1777.
[348] Vespasiano da Bisticci, l. c. p. 283.
[349] Tractatus quo concluditur: Nullam Gentilium scientiam
chatolicæ fidei christianæ esse contrariam, addressed to
Malatesta de’ Malatesti by Pesaro as umpire, Rinaldo is termed
therein, ‘Nobilis florentinus juvenis Rainaldus domini Masii de
Albicis de Florentia.’ There is a tract by the same author, De
electione medici ad nobilem florentinum juvenem Cosmum
Johannis Bitii de Medicis; see Commissioni di R. d. A. iii. 601 seq.;
Mehus, 1. c. p. 394.
[350] On the sonnet generally ascribed to Burchiello, ‘O umil popol
mio, tu non ti avvedi,’ see Commissioni, iii. 647.
[351] Rosmini, Vita di Francesco Filelfo da Tolentino, Milan, 1808, i.
35.
[352] Fabroni, l. c. ii. 69.
[353] Phil. Sat. ii. 3; iv. 1; Shepherd, l. c. i. 238. Rosmini, p. 75, has
no desire to dwell on revolting subjects.
[354] Vespasiano da Bisticci, l. c. p. 246.
[355] L. Mehus, l. c. p. 18; Poggio, Opera, p. 278.
[356] Epist. I. iii. 29 (in Tonelli’s edit. i. 269).
[357] Idem., iv. 16, 17 (i. 333, 339).
[358] Shepherd, l. c. i. 155, 222.
[359] Tiraboschi, Stor. lett. vi. 1 (vol. vii.), p. 263. A. Peruzzi, in
Hercolani’s Biografie d’illustri Piceni, i. 27, very superficial. L.
Mehus’ edition of Kyriaci Anconitani Itinerarium, Flor. 1742, is
insufficient; information about him has been carefully collected in
the preface and in Traversari’s life. For the opinion of Alberto
degli Alberti respecting the state of Rome in Pope Eugenius IV.’s
time in a letter to Giovanni de’ Medici, Cosimo’s son, see Fabroni,
1. c. ii. 165.
[360] Vespasiano da Bisticci, 1. c. p. 511; G. Cantalamessa,
Hercolani, i. 117 seq.
[361] G. Voigt, Die Wiederbelebung des classischen Alterthums, p.
361.
[362] Mehus, 1. c. ii. 335.
[363] Apostolo Zeno, 1. c. i. 318; Fabroni, 1. c. i. 136, ii. 223.
[364] Histor. de var. Fort. p.92; Traversari, Epist. v. 10 (ii. 245).
[365] Fr. Schulze, Geschichte der Philosophie der Renaissance, i.
Jena, 1874.
[366] Gio. Corsi, Marsilii Ficini Vita, with introduction and notes by
A. M. Bandini, Pisa, 1771; reprinted by Galletti Philippi Villani,
Liber, &c., pp. 183-214. L. Galeotti, Saggio intorno alla vita e agli
scritti di M. F. in the Arch. Stor. Ital., series ii., ix. 2, 25 seq. (A
careful collection of Ficino’s opinions, especially on religion and
particularly from his letters.) Edit. of the Works, Basle, 1576, with
twelve books of letters in vol. i. There is an Italian translation of
the letters, Lettere di M. F., tradotte per M. Felice, Figliucci
Senese, Venice, 1556. Ficino composed his commentary to Plato’s
Banquet and his book on the Christian religion in Italian also.
Edit. of the first, Flor. 1544; the second, Flor. 1568 (Gamba, Testi
di Lingua, 1097, 1098).
[367] M. Ficino, Epistolæ, book i.; see vol. i. p. 192; vol. ii. p. 29
seq.
[368] In Lord Vernon’s illustrated edition of the Inferno there is a
representation of Landino’s grave and the body.
[369] A. M. Bandini, Specimen literaturæ Florentinæ sæculi XV. Flor.
1748 (History and Monuments of the Florentine Literature of the
second half of the Fifteenth Century, in the form of a biography
of Landino); see vol. ii. p. 40 seq.
[370] Ad Jacobum Salvettum de laudibus M. Cosmi, Bandini, i. 102.
[371] Lettere di Sant’Antonino, Flor. 1859, pp. 126, 193. On the
embassies to Rome entrusted to the Archbishop in the years
1455 and 1458: Due Legazioni al Sommo Pontefice per il Comune
di Firenze, presedute da Sant’Antonino arcivescovo (edited by
Cesare Guasti), Flor. 1857. Of the works of the Saint, for which
see Brunet’s Manuel bibliographique, i. 330, we need only
mention here, Opera a ben vivere di S. A., messa a luce con altri
suoi ammaestramenti e una giunta di antiche orazioni Toscane,
da Fr. Palermo, Flor. 1858.
[372] L. c. p. 193.
[373] Fabroni, l. c.
[374] Vespasiano da Bisticci, l. c. p. 291.
[375] Vespasiano da Bisticci, l. c. p. 482.
[376] Gaye, l. c. i. 545; see above, p. 528.
[377] Shepherd, l. c. i. 255.
[378] Idem. p. 261.
[379] Vespasiano da Bisticci, pp. 210, 213, 402.
[380] ‘Protonotaio apostolico inghilese,’ ‘Messer Andrea Ols,’ l. c. p.
238.
[381] See vol. ii. pp. 141, 142.
[382] Inscription:
SOCIETATI MEDICEÆ
APUD DEUM
FRATRES ET STUDIOSI OMNES
LINGUIS ANIMISQUE
FAVERE TENEMUR
QUOD SUA IMPENSA
LOCUM BIBLIOTHECÆ
OMNI CULTU ET ORNATU
JOANNE LANFREDINO SOCIO
FACIUNDUM CURAVIT.