nexusstc/Сила Javascript. 68 способов эффективного использования JS./fdf0e5c4db2050d0f774fdfd1ef23f40.pdf
Сила Javascript. 68 способов эффективного использования JS. 🔍
Херман, Дэвид
Издательский дом Питер, Библиотека специалиста, 2013
English [en] · Russian [ru] · PDF · 10.3MB · 2013 · 📘 Book (non-fiction) · 🚀/lgli/lgrs/nexusstc/zlib · Save
description
Эта книга поможет вам освоить всю мощь языка программирования javascript и научит применять его максимально эффективно. Автор описывает внутреннюю работу языка на понятных практических примерах, которые помогут как начинающим программистам, так и опытным разработчикам повысить уровень понимания javascript и существенно обогатить опыт его применения в своей работе. В книге содержится 68 проверенных подходов для написания «чистого» и работающего кода на javascript, которые можно легко использовать на практике. Вы узнаете, как выбирать правильный стиль программирования для каждого конкретного проекта, как управлять непредвиденными проблемами разработки, а также как работать более эффективно на каждом этапе программирования на javascript.
Alternative filename
lgli/Херман Д.;Сила JavaScript. 68 способов эффективного использования JS;;Библиотека специалиста;Питер;2013;978-5-496-00524-1;;.pdf
Alternative filename
lgrsnf/Херман Д.;Сила JavaScript. 68 способов эффективного использования JS;;Библиотека специалиста;Питер;2013;978-5-496-00524-1;;.pdf
Alternative filename
zlib/Computers/Web Development/Херман Д./Сила JavaScript. 68 способов эффективного использования JS_2370718.pdf
Alternative title
Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript (Effective Software Development Series)
Alternative author
Дэвид Херман; [пер. с англ. Н. Вильчинский]
Alternative author
Herman, David
Alternative author
David Herman
Alternative publisher
Addison-Wesley Educational Publishers Inc
Alternative publisher
Addison-Wesley Longman, Incorporated
Alternative publisher
Addison-Wesley Professional
Alternative publisher
Longman Publishing
Alternative publisher
Adobe Press
Alternative publisher
Piter Press
Alternative edition
Effective software development series, Upper Saddle River, NJ, 2013
Alternative edition
Effective software development series, München, 2012
Alternative edition
Pearson Education (US), Upper Saddle River, NJ, 2013
Alternative edition
United States, United States of America
Alternative edition
Санкт-Петербург [и др.], Russia, 2013
Alternative edition
Russia, Russian Federation
Alternative edition
Boston, Mass, 2012
Alternative edition
December 6, 2012
Alternative edition
1, PS, 2012
metadata comments
lg1202377
metadata comments
{"isbns":["0321812182","5496005248","9780321812186","9785496005241"],"last_page":288,"publisher":"Питер","series":"Библиотека специалиста"}
metadata comments
Пер.: Herman, David Effective JavaScript: 68 specific ways to harness the power 978-0321812186
metadata comments
РГБ
metadata comments
Russian State Library [rgb] MARC:
=001 006599818
=005 20130829123514.0
=008 130702s2013\\\\ru\a\\\\\\\\\\000\|\rus|d
=017 \\ $a 13-50041
=020 \\ $a 978-5-496-00524-1
=040 \\ $a RuMoRKP $b rus $e rcr $d RuMoRGB
=041 1\ $a rus $h eng
=080 \\ $a 004.438
=084 \\ $a З973.233.02-044.5-018.19JavaScript,0 $2 rubbk
=100 1\ $a Херман, Дэвид
=245 00 $a Сила JavaScript $h [Текст] : $b 68 способов эффективного использования JS $c Дэвид Херман ; [пер. с англ. Н. Вильчинский]
=260 \\ $a Санкт-Петербург [и др.] $b Питер $c 2013
=300 \\ $a 286 с. $b ил. $c 24 см
=336 \\ $a текст (text) $b txt $2 rdacontent
=337 \\ $a неопосредованный (unmediated) $b n $2 rdamedia
=338 \\ $a том (volume) $b nc $2 rdacarrier
=534 \\ $p Пер.: $a Herman, David $t Effective JavaScript: 68 specific ways to harness the power $z 978-0321812186
=650 \7 $a Вычислительная техника -- Вычислительные машины электронные цифровые -- Автоматическая обработка информации -- Информационные системы и сети -- Элементы и узлы -- Управляющие, вводные и выводные устройства -- Устройства для опознавания и считывания -- Программирование -- Языки программирования -- JavaScript $2 rubbk
=650 \7 $a JAVA SCRIPT, язык программирования $0 RU\NLR\AUTH\661245721 $2 nlr_sh
=852 \\ $a РГБ $b FB $j 2 13-57/266 $x 90
=001 006599818
=005 20130829123514.0
=008 130702s2013\\\\ru\a\\\\\\\\\\000\|\rus|d
=017 \\ $a 13-50041
=020 \\ $a 978-5-496-00524-1
=040 \\ $a RuMoRKP $b rus $e rcr $d RuMoRGB
=041 1\ $a rus $h eng
=080 \\ $a 004.438
=084 \\ $a З973.233.02-044.5-018.19JavaScript,0 $2 rubbk
=100 1\ $a Херман, Дэвид
=245 00 $a Сила JavaScript $h [Текст] : $b 68 способов эффективного использования JS $c Дэвид Херман ; [пер. с англ. Н. Вильчинский]
=260 \\ $a Санкт-Петербург [и др.] $b Питер $c 2013
=300 \\ $a 286 с. $b ил. $c 24 см
=336 \\ $a текст (text) $b txt $2 rdacontent
=337 \\ $a неопосредованный (unmediated) $b n $2 rdamedia
=338 \\ $a том (volume) $b nc $2 rdacarrier
=534 \\ $p Пер.: $a Herman, David $t Effective JavaScript: 68 specific ways to harness the power $z 978-0321812186
=650 \7 $a Вычислительная техника -- Вычислительные машины электронные цифровые -- Автоматическая обработка информации -- Информационные системы и сети -- Элементы и узлы -- Управляющие, вводные и выводные устройства -- Устройства для опознавания и считывания -- Программирование -- Языки программирования -- JavaScript $2 rubbk
=650 \7 $a JAVA SCRIPT, язык программирования $0 RU\NLR\AUTH\661245721 $2 nlr_sh
=852 \\ $a РГБ $b FB $j 2 13-57/266 $x 90
Alternative description
Предисловие......Page 9
Введение......Page 12
Веб-программирование......Page 13
Замечание по поводу параллелизма......Page 14
Благодарности......Page 15
Об авторе......Page 18
Глава 1.
Подготовка к программированию на JavaScript......Page 19
Заранее узнайте, какая версия JavaScript используется......Page 20
Разберитесь с числами с плавающей точкой......Page 28
Остерегайтесь неявного приведения типов данных......Page 32
Отдавайте предпочтение примитивам, а не объектным оболочкам......Page 40
Избегайте использования оператора == со смешанными типами......Page 42
Разберитесь с ограничениями на использование точки с запятой......Page 46
Рассматривайте строки в виде последовательности 16-разрядных байтовых представлений кодов......Page 55
Старайтесь как можно меньше использовать глобальный объект......Page 61
Всегда объявляйте локальные переменные......Page 65
Избегайте ключевого слова with......Page 67
Освойте механизм замыканий......Page 72
Разберитесь с подъемом переменных......Page 76
Используйте немедленно вызываемые функции-выражения для создания локальных областей видимости......Page 79
Остерегайтесь использования непереносимых областей видимости, возникающих при использовании именованных функций-выражений......Page 83
Остерегайтесь непереносимых областей видимости, возникающих из-за объявления функций внутри локальных блоков......Page 88
Избегайте создания локальных переменных с помощью функции eval......Page 91
Используйте непрямой вызов функции eval вместо прямого......Page 93
Разберитесь в различиях между вызовами функций, методов и конструкторов......Page 96
Научитесь пользоваться функциями высшего порядка......Page 100
Используйте метод call для вызова методов с произвольным получателем......Page 105
Используйте метод apply для вызова функций с разным количеством аргументов......Page 107
Используйте объект arguments для создания вариативных функций......Page 110
Никогда не вносите изменений в объект arguments......Page 112
Используйте переменную для сохранения ссылки на объект arguments......Page 115
Используйте метод bind для извлечения методов с фиксированным получателем......Page 117
Используйте метод bind для каррирования функций......Page 120
При инкапсуляции кода отдавайте предпочтение замыканиям, а не строкам......Page 122
Избегайте использования метода toString функций......Page 124
Избегайте нестандартных свойств инспектирования стека......Page 127
Глава 4.
Объекты и прототипы......Page 130
Разберитесь в различиях между механизмами prototype, getPrototypeOf и __proto__......Page 131
Отдавайте предпочтение функции Object.getPrototypeOf, а не свойству __proto__......Page 135
Никогда не вносите изменения в свойство __proto__......Page 136
Создавайте свои конструкторы так, чтобы их не нужно было вызывать с оператором new......Page 138
Храните методы в прототипах......Page 142
Для хранения закрытых данных используйте замыкания......Page 144
Храните состояние экземпляра только в объектах-экземплярах......Page 147
Разберитесь с неявным связыванием this......Page 150
Вызывайте конструкторы суперкласса из конструкторов подкласса......Page 154
Не используйте повторно имена свойств суперкласса......Page 159
Избегайте наследования от стандартных классов......Page 161
Считайте прототипы деталями реализации......Page 164
Не пытайтесь бездумно вносить изменения методом обезьяньей правки......Page 166
Создавайте простые словари только из непосредственных экземпляров объектов......Page 169
171-180.pdf......Page 0
Отдавайте предпочтение массивам, а не словарям при работе с упорядоченными коллекциями......Page 182
Не добавляйте перечисляемые свойства к Object.prototype......Page 186
Избегайте модификации объекта в ходе перечисления......Page 188
При последовательном переборе элементов массива отдавайте предпочтение циклу for, а не циклу for...in......Page 194
При работе с циклами отдавайте предпочтение итерационным методам......Page 196
Придерживайтесь неизменных соглашений......Page 207
Рассматривайте вариант undefined как «нет значения»......Page 210
Применяйте для аргументов, требующих описания, объекты параметров......Page 216
Избегайте ненужных данных о состоянии......Page 222
Используйте структурную типизацию для создания гибких интерфейсов......Page 226
Различайте массив и подобие массива......Page 232
Избегайте избыточного приведения типов данных......Page 237
Выстраивайте цепочки методов......Page 242
Глава 7.
Параллелизм......Page 246
Не блокируйте очередь событий при вводе-выводе......Page 247
Используйте вложенные или именованные функции обратного вызова для задания последовательности выполнения асинхронных команд......Page 252
Не забывайте о существовании игнорируемых ошибок......Page 257
Используйте рекурсию для асинхронных циклов......Page 262
Не блокируйте очередь событий вычислениями......Page 267
Используйте счетчик для выполнения параллельных операций......Page 272
Не вызывайте асинхронные функции обратного вызова в синхронном режиме......Page 278
Используйте обязательства для более понятной асинхронной логики......Page 282
201-205_Страница_1......Page 201
201-205_Страница_2......Page 202
201-205_Страница_3......Page 203
201-205_Страница_4......Page 204
201-205_Страница_5......Page 205
171-180_Страница_01......Page 171
171-180_Страница_02......Page 172
171-180_Страница_03......Page 173
171-180_Страница_04......Page 174
171-180_Страница_05......Page 175
171-180_Страница_06......Page 176
171-180_Страница_07......Page 177
171-180_Страница_08......Page 178
171-180_Страница_09......Page 179
171-180_Страница_10......Page 180
Введение......Page 12
Веб-программирование......Page 13
Замечание по поводу параллелизма......Page 14
Благодарности......Page 15
Об авторе......Page 18
Глава 1.
Подготовка к программированию на JavaScript......Page 19
Заранее узнайте, какая версия JavaScript используется......Page 20
Разберитесь с числами с плавающей точкой......Page 28
Остерегайтесь неявного приведения типов данных......Page 32
Отдавайте предпочтение примитивам, а не объектным оболочкам......Page 40
Избегайте использования оператора == со смешанными типами......Page 42
Разберитесь с ограничениями на использование точки с запятой......Page 46
Рассматривайте строки в виде последовательности 16-разрядных байтовых представлений кодов......Page 55
Старайтесь как можно меньше использовать глобальный объект......Page 61
Всегда объявляйте локальные переменные......Page 65
Избегайте ключевого слова with......Page 67
Освойте механизм замыканий......Page 72
Разберитесь с подъемом переменных......Page 76
Используйте немедленно вызываемые функции-выражения для создания локальных областей видимости......Page 79
Остерегайтесь использования непереносимых областей видимости, возникающих при использовании именованных функций-выражений......Page 83
Остерегайтесь непереносимых областей видимости, возникающих из-за объявления функций внутри локальных блоков......Page 88
Избегайте создания локальных переменных с помощью функции eval......Page 91
Используйте непрямой вызов функции eval вместо прямого......Page 93
Разберитесь в различиях между вызовами функций, методов и конструкторов......Page 96
Научитесь пользоваться функциями высшего порядка......Page 100
Используйте метод call для вызова методов с произвольным получателем......Page 105
Используйте метод apply для вызова функций с разным количеством аргументов......Page 107
Используйте объект arguments для создания вариативных функций......Page 110
Никогда не вносите изменений в объект arguments......Page 112
Используйте переменную для сохранения ссылки на объект arguments......Page 115
Используйте метод bind для извлечения методов с фиксированным получателем......Page 117
Используйте метод bind для каррирования функций......Page 120
При инкапсуляции кода отдавайте предпочтение замыканиям, а не строкам......Page 122
Избегайте использования метода toString функций......Page 124
Избегайте нестандартных свойств инспектирования стека......Page 127
Глава 4.
Объекты и прототипы......Page 130
Разберитесь в различиях между механизмами prototype, getPrototypeOf и __proto__......Page 131
Отдавайте предпочтение функции Object.getPrototypeOf, а не свойству __proto__......Page 135
Никогда не вносите изменения в свойство __proto__......Page 136
Создавайте свои конструкторы так, чтобы их не нужно было вызывать с оператором new......Page 138
Храните методы в прототипах......Page 142
Для хранения закрытых данных используйте замыкания......Page 144
Храните состояние экземпляра только в объектах-экземплярах......Page 147
Разберитесь с неявным связыванием this......Page 150
Вызывайте конструкторы суперкласса из конструкторов подкласса......Page 154
Не используйте повторно имена свойств суперкласса......Page 159
Избегайте наследования от стандартных классов......Page 161
Считайте прототипы деталями реализации......Page 164
Не пытайтесь бездумно вносить изменения методом обезьяньей правки......Page 166
Создавайте простые словари только из непосредственных экземпляров объектов......Page 169
171-180.pdf......Page 0
Отдавайте предпочтение массивам, а не словарям при работе с упорядоченными коллекциями......Page 182
Не добавляйте перечисляемые свойства к Object.prototype......Page 186
Избегайте модификации объекта в ходе перечисления......Page 188
При последовательном переборе элементов массива отдавайте предпочтение циклу for, а не циклу for...in......Page 194
При работе с циклами отдавайте предпочтение итерационным методам......Page 196
Придерживайтесь неизменных соглашений......Page 207
Рассматривайте вариант undefined как «нет значения»......Page 210
Применяйте для аргументов, требующих описания, объекты параметров......Page 216
Избегайте ненужных данных о состоянии......Page 222
Используйте структурную типизацию для создания гибких интерфейсов......Page 226
Различайте массив и подобие массива......Page 232
Избегайте избыточного приведения типов данных......Page 237
Выстраивайте цепочки методов......Page 242
Глава 7.
Параллелизм......Page 246
Не блокируйте очередь событий при вводе-выводе......Page 247
Используйте вложенные или именованные функции обратного вызова для задания последовательности выполнения асинхронных команд......Page 252
Не забывайте о существовании игнорируемых ошибок......Page 257
Используйте рекурсию для асинхронных циклов......Page 262
Не блокируйте очередь событий вычислениями......Page 267
Используйте счетчик для выполнения параллельных операций......Page 272
Не вызывайте асинхронные функции обратного вызова в синхронном режиме......Page 278
Используйте обязательства для более понятной асинхронной логики......Page 282
201-205_Страница_1......Page 201
201-205_Страница_2......Page 202
201-205_Страница_3......Page 203
201-205_Страница_4......Page 204
201-205_Страница_5......Page 205
171-180_Страница_01......Page 171
171-180_Страница_02......Page 172
171-180_Страница_03......Page 173
171-180_Страница_04......Page 174
171-180_Страница_05......Page 175
171-180_Страница_06......Page 176
171-180_Страница_07......Page 177
171-180_Страница_08......Page 178
171-180_Страница_09......Page 179
171-180_Страница_10......Page 180
Alternative description
<p>“It’s uncommon to have a programming language wonk who can speak in such comfortable and friendly language as David does. His walk through the syntax and semantics of JavaScript is both charming and hugely insightful; reminders of gotchas complement realistic use cases, paced at a comfortable curve. You’ll find when you finish the book that you’ve gained a strong and comprehensive sense of mastery.”</p>
<p class="null1">—Paul Irish, developer advocate, Google Chrome</p>
<p>“This is not a book for those looking for shortcuts; rather it is hard-won experience distilled into a guided tour. It’s one of the few books on JS that I’ll recommend without hesitation.”</p>
<p class="null1">—Alex Russell, TC39 member, software engineer, Google</p>
<p>In order to truly master JavaScript, you need to learn how to work effectively with the language’s flexible, expressive features and how to avoid its pitfalls. No matter how long you’ve been writing JavaScript code, <b><i><b>Effective JavaScript</b></i></b> will help deepen your understanding of this powerful language, so you can build more predictable, reliable, and maintainable programs.</p>
<p>Author David Herman, with his years of experience on Ecma’s JavaScript standardization committee, illuminates the language’s inner workings as never before—helping you take full advantage of JavaScript’s expressiveness. Reflecting the latest versions of the JavaScript standard, the book offers well-proven techniques and best practices you’ll rely on for years to come.</p>
<p><b><i><b>Effective JavaScript</b></i></b> is organized around 68 proven approaches for writing better JavaScript, backed by concrete examples. You’ll learn how to choose the right programming style for each project, manage unanticipated problems, and work more successfully with every facet of JavaScript programming from data structures to concurrency. Key features include</p>
<ul>
<li>Better ways to use prototype-based object-oriented programming</li>
<li>Subtleties and solutions for working with arrays and dictionary objects</li>
<li>Precise and practical explanations of JavaScript’s functions and variable scoping semantics</li>
<li>Useful JavaScript programming patterns and idioms, such as options objects and method chaining</li>
<li>In-depth guidance on using JavaScript’s unique “run-to-completion” approach to concurrency</li>
</ul>
<p class="null1">—Paul Irish, developer advocate, Google Chrome</p>
<p>“This is not a book for those looking for shortcuts; rather it is hard-won experience distilled into a guided tour. It’s one of the few books on JS that I’ll recommend without hesitation.”</p>
<p class="null1">—Alex Russell, TC39 member, software engineer, Google</p>
<p>In order to truly master JavaScript, you need to learn how to work effectively with the language’s flexible, expressive features and how to avoid its pitfalls. No matter how long you’ve been writing JavaScript code, <b><i><b>Effective JavaScript</b></i></b> will help deepen your understanding of this powerful language, so you can build more predictable, reliable, and maintainable programs.</p>
<p>Author David Herman, with his years of experience on Ecma’s JavaScript standardization committee, illuminates the language’s inner workings as never before—helping you take full advantage of JavaScript’s expressiveness. Reflecting the latest versions of the JavaScript standard, the book offers well-proven techniques and best practices you’ll rely on for years to come.</p>
<p><b><i><b>Effective JavaScript</b></i></b> is organized around 68 proven approaches for writing better JavaScript, backed by concrete examples. You’ll learn how to choose the right programming style for each project, manage unanticipated problems, and work more successfully with every facet of JavaScript programming from data structures to concurrency. Key features include</p>
<ul>
<li>Better ways to use prototype-based object-oriented programming</li>
<li>Subtleties and solutions for working with arrays and dictionary objects</li>
<li>Precise and practical explanations of JavaScript’s functions and variable scoping semantics</li>
<li>Useful JavaScript programming patterns and idioms, such as options objects and method chaining</li>
<li>In-depth guidance on using JavaScript’s unique “run-to-completion” approach to concurrency</li>
</ul>
date open sourced
2014-08-17
🚀 Fast downloads
Become a member to support the long-term preservation of books, papers, and more. To show our gratitude for your support, you get fast downloads. ❤️
- Fast Partner Server #1 (recommended)
- Fast Partner Server #2 (recommended)
- Fast Partner Server #3 (recommended)
- Fast Partner Server #4 (recommended)
- Fast Partner Server #5 (recommended)
- Fast Partner Server #6 (recommended)
- Fast Partner Server #7
- Fast Partner Server #8
- Fast Partner Server #9
- Fast Partner Server #10
- Fast Partner Server #11
🐢 Slow downloads
From trusted partners. More information in the FAQ. (might require browser verification — unlimited downloads!)
- Slow Partner Server #1 (slightly faster but with waitlist)
- Slow Partner Server #2 (slightly faster but with waitlist)
- Slow Partner Server #3 (slightly faster but with waitlist)
- Slow Partner Server #4 (slightly faster but with waitlist)
- Slow Partner Server #5 (no waitlist, but can be very slow)
- Slow Partner Server #6 (no waitlist, but can be very slow)
- Slow Partner Server #7 (no waitlist, but can be very slow)
- Slow Partner Server #8 (no waitlist, but can be very slow)
- After downloading: Open in our viewer
All download options have the same file, and should be safe to use. That said, always be cautious when downloading files from the internet, especially from sites external to Anna’s Archive. For example, be sure to keep your devices updated.
External downloads
-
For large files, we recommend using a download manager to prevent interruptions.
Recommended download managers: Motrix -
You will need an ebook or PDF reader to open the file, depending on the file format.
Recommended ebook readers: Anna’s Archive online viewer, ReadEra, and Calibre -
Use online tools to convert between formats.
Recommended conversion tools: CloudConvert and PrintFriendly -
You can send both PDF and EPUB files to your Kindle or Kobo eReader.
Recommended tools: Amazon‘s “Send to Kindle” and djazz‘s “Send to Kobo/Kindle” -
Support authors and libraries
✍️ If you like this and can afford it, consider buying the original, or supporting the authors directly.
📚 If this is available at your local library, consider borrowing it for free there.
Total downloads:
A “file MD5” is a hash that gets computed from the file contents, and is reasonably unique based on that content. All shadow libraries that we have indexed on here primarily use MD5s to identify files.
A file might appear in multiple shadow libraries. For information about the various datasets that we have compiled, see the Datasets page.
For information about this particular file, check out its JSON file. Live/debug JSON version. Live/debug page.