Muutke küpsiste eelistusi

E-raamat: Joy of JavaScript

  • Formaat: 360 pages
  • Ilmumisaeg: 10-Feb-2021
  • Kirjastus: Manning Publications
  • Keel: eng
  • ISBN-13: 9781638350323
Teised raamatud teemal:
  • Formaat - EPUB+DRM
  • Hind: 34,03 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: 360 pages
  • Ilmumisaeg: 10-Feb-2021
  • Kirjastus: Manning Publications
  • Keel: eng
  • ISBN-13: 9781638350323
Teised raamatud teemal:

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

Whether for building interactive browser-based applications or creating server-side applications in Node, JavaScript is the most widely used language for web programming. With new features, language improvements, paradigms, and potential use cases appearing regularly, theres never been a more exciting time to be a JavaScript developer.  



In The Joy of JavaScript, author and JavaScript expert Luis Atencio teaches you key design concepts that lead to clean, lean, modular, and easy-to-maintain code.



Key features

JavaScripts objects and module system 

Working with higher order functions 

Driving application business logic with functional programming principles 

Dynamically hooking into data with Proxy and Reflect APIs 

Static type-checking with Flow 

Taming complex asynchronous behavior using reactive programming



Audience

Perfect for intermediate JavaScript developers with basic familiarity with HTTP, HTML/CSS, and Git/CLI.



About the technology

JavaScript is multi-paradigm, supporting object-oriented, functional, reactive, and event-driven styles of programming. And transpilers like Babel make it possible to compile code written in other languages into JavaScript.



Luis Atencio is a software engineer for Citrix Systems, where he develops and architects web applications leveraging Java, PHP, and JavaScript platforms. He blogs about software engineering at http://luisatencio.net, has spoken in many dev conferences, and has written articles for PHPArch magazine and DZone Refcardz. Luis is the author of Mannings Functional Programming in JavaScript and the co-author of Mannings RxJS in Action.
Preface xiii
Acknowledgments xv
About this book xvii
About the author xxi
About the cover illustration xxii
1 JavaScript reloaded
1(20)
1.1 Evolving JavaScript
4(1)
1.2 Objects
5(2)
1.3 Functions
7(5)
1.4 Code
12(1)
1.5 Data
13(3)
1.6 Sample application: Blockchain
16(5)
PART I OBJECTS
21(50)
2 Inheritance-based object modeling
23(19)
2.1 Reviewing prototypal inheritance
24(6)
Property resolution process
27(2)
Differential inheritance
29(1)
2.2 Constructor functions
30(6)
Functions as templates
30(1)
Sharing properties by using constructors and prototypes
31(5)
2.3 Class-based inheritance
36(6)
3 Linked, compositional object models
42(29)
3.1 Types of object links
43(2)
Implicit
43(1)
Explicit
44(1)
3.2 OLOO
45(5)
3.3 Understanding Object assign
50(4)
Object assign uncovered
51(2)
Assignment vs definition
53(1)
3.4 Assembling objects using mixin composition
54(12)
Anatomy of a mixin
60(3)
Multiple inheritance and linearization
63(2)
Composing objects using Object.assign and the spread operator
65(1)
3.5 Applying shared mixins to multiple objects
66(5)
PART 2 FUNCTIONS
71(84)
4 Writing composable, pure code
73(41)
4.1 What is functional programming?
75(4)
Functions as data
76(2)
The functional way
78(1)
4.2 Functional versus imperative at a glance
79(2)
4.3 Composition: The functional way
81(9)
Working with side effects
84(3)
Decomposing complex code
87(3)
4.4 Currying and closures
90(10)
Curried function application
91(5)
The curry and composition dynamic duo
96(4)
4.5 Working with immutable objects
100(4)
4.6 Point-free coding
104(2)
4.7 Imperative to functional transformation
106(5)
4.8 Native function chains
111(3)
4 Higher-kinded composition
114(41)
5.1 Closing over data types
117(5)
5.2 New Array APIs: {flat, flatMap}
122(1)
Array.prototype.flat
122(1)
Array.prototype.flatMap
122(1)
5.3 The map/compose correspondence
123(1)
5.4 Universal contracts
124(7)
Functors
124(3)
Monads
127(4)
5.5 Contextual validation with higher-order functions
131(19)
Kinds of ADTs
131(1)
Choices
132(2)
Modeling success and failure with the Validation monad
134(4)
Composing with monads
138(4)
Higher-kinded composition with Validation
142(2)
Point-free coding with monads
144(2)
Reducing complex data structures
146(3)
Third-party integration
149(1)
5.6 Higher-kinded composition with method extraction and dynamic binding
150(5)
PART 3 CODE
155(68)
6 ECMAScript Modules
157(26)
6.1 Past state of affairs
158(2)
6.2 Module patterns
160(7)
Object namespaces
161(2)
Immediately Invoked Function Expressions (IIFEs)
163(1)
IIFE mixins
164(1)
Factory functions
165(2)
6.3 Static vs. dynamic module systems
167(3)
6.4 ESM basics
170(8)
Path specifiers
171(1)
Exporting
172(2)
Importing
174(3)
A new extension in town
177(1)
6.5 Benefits of ESM for tooling
178(5)
Dead-code elimination and tree-shaking
178(2)
Faster property lookups
180(1)
Type-friendliness
181(2)
7 Hooked on metaprogramming
183(40)
7.1 Common uses of metaprogramming in JavaScript
184(2)
7.2 JavaScript symbols
186(2)
7.3 Symbol registries
188(2)
Local registry
188(1)
Global registry
189(1)
7.4 Practical application of symbols
190(8)
Hidden properties
190(1)
Interoperability
191(5)
Serialization
196(2)
7.5 Well-known symbols
198(13)
@@toStringTag
198(1)
@@isConcatSpreadable
199(1)
@@species
200(3)
@@toPrimitive
203(2)
@@iterator
205(6)
7.6 Dynamic introspection and weaving
211(7)
Proxy objects
212(3)
The Reflect API
215(1)
Additional use cases
216(2)
7.7 Implementing method decorators
218(5)
PART 4 DATA
223(83)
8 Linear async flows
225(35)
8.1 Architecture at a glance
226(2)
8.2 JavaScript as promised
228(16)
Principle of data locality
231(1)
Are promises algebraic?
231(3)
Fluent chaining
234(8)
Promises in the wild
242(2)
8.3 API review: Promise combinators
244(5)
Promise.all
246(1)
Promise.race
247(1)
Promise.allSettled
247(1)
Promise, any
248(1)
8.4 async made easy
249(3)
8.5 async iteration
252(5)
8.6 Top-level await
257(3)
9 Streams programming
260(46)
9.1 Iterables and Iterators
262(4)
Iterable protocol
262(1)
Iterator protocol
263(1)
Examples
263(3)
9.2 Generators
266(7)
To return or to yield
266(1)
Creating iterable objects
267(2)
Async generators
269(4)
9.3 Working with data streams
273(5)
What is a stream?
274(1)
Implementing a streamable array
275(3)
9.4 Welcoming a new native: Observable
278(26)
What is an Observable?
279(2)
Creating custom observables
281(1)
Building your own reactive toolkit
282(6)
Observable mixin extension
288(2)
Representing push streams with generators
290(5)
Pipeable operators
295(2)
Streamifying objects
297(3)
Dynamic streamification
300(4)
9.5 Closing thoughts
304(2)
Appendix A Configuring Babel 306(2)
Appendix B Typed JavaScript<T> 308(17)
Index 325
Luis Atencio is a software engineer for Citrix Systems, where he develops and architects web applications leveraging Java, PHP, and JavaScript platforms. He blogs about software engineering at http://luisatencio.net, has spoken in many dev conferences, and has written articles for PHPArch magazine and DZone Refcardz. Luis is the author of Mannings Functional Programming in JavaScript and the co-author of Mannings RxJS in Action.