Veze, linkovi
Kompjuter biblioteka
The Joy of JavaScript

JavaScript JavaScript

The Joy of JavaScript

Autor: Luis Atencio
Broj strana: 360
ISBN broj: 9781617295867
Godina izdanja: 2021.

Twitter   Facebook   Linkedin   Pinterest   Email
Predlog za prevod


The Joy of JavaScript introduces techniques that turn JavaScript programmers into JavaScript pros.

Whether 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, there’s 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.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

About the technology
JavaScript is at the heart of web applications on the browser side and, via the popular Node.js runtime, it often powers the server side too. Simply put, the web runs on JavaScript.

About the book
The Joy of JavaScript introduces techniques that turn JavaScript programmers into JavaScript pros. You’ll work with cutting edge APIs, language features, and coding styles to tackle tricky problems in an elegant manner. Along the way, you’ll practice good object design, drive business logic with functional thinking, and untangle complex data flows.

What's inside

    JavaScript’s objects and module system
    Working with higher order functions
    Identifying and creating composable software
    Preparing for upcoming JavaScript features

About the reader
Written for experienced and passionate JavaScript developers.

About the author
Luis Atencio is a software engineer for Citrix Systems, author of Manning’s Functional Programming in JavaScript, and co-author of Manning’s RxJS in Action.

Table of Contents

1 JavaScript reloaded

This chapter covers

  • Evaluating the key aspects of day-to-day coding: objects, functions, code, and data
  • Comparing prototype- and delegation-based object models
  • Understanding the composability of functions and types
  • Achieving clear separation of concerns through modularity and metaprogramming
  • Using promises and streams programming to create unidirectional data pipelines
  • Introducing the sample blockchain application


2 Inheritance-based object modeling

This chapter covers

  • Prototypal inheritance, constructor functions, and classes
  • JavaScript’s property resolution mechanism
  • The “prototypal inheritance” oxymoron
  • Advantages and drawbacks of classes in JavaScript

3 Linked, compositional object models

This chapter covers

  • Understanding the Objects Linked to Other Objects (OLOO) pattern of behavior delegation with linked objects
  • Combining classes with mixins for concatenative dynamic extension
  • Using Object.assign and the spread operator to build new objects


4 Writing composable, pure code

This chapter covers

  • Refactoring imperative coding to a declarative, functional style
  • Mastering JavaScript’s higher-order functions
  • Introducing pure functions and immutability
  • Combining pure logic with curry and composition
  • Improving readability and structure of code with a point-free style
  • Creating native function chains with the pipeline operator

5 Higher-kinded composition

This chapter covers

  • Transforming arrays and objects safely with map and flatMap
  • Composable design patterns with algebraic data types
  • Writing a Validation data type to remove complex branching logic
  • Chaining ADTs using the new bind operator (::)


6 ECMAScript Modules

This chapter covers

  • Evaluating programmatic module patterns
  • Reviewing Immediately Invoked Function Expressions (IIFEs)
  • Introducing the ECMAScript Module syntax and the new .mjs extension
  • Comparing dynamic and static module systems
  • Using tree-shaking and dead-code elimination

7 Hooked on metaprogramming

This chapter covers

  • Applying cross-functional behavior with metaprogramming and reflection
  • Using symbols to create interoperability between different realms in your application
  • Augmenting JavaScript’s internals with symbols
  • Understanding the basics of the Proxy/Reflect APIs
  • Enhancing the execution of methods with decorators
  • Performing leaner error handling with the throw expressions proposal


8 Linear async flows

This chapter covers

  • Reviewing a basic Node.js architecture
  • Working with the JavaScript Promise API
  • Assembling promise chains to model complex asynchronous flows
  • Using async/await and asynchronous iterators

9 Stream programming

This chapter covers

  • Reviewing the Iterator/Iterable protocols
  • Using generators to represent iterable sequences of values over time
  • Reviewing the push/pull models as well as stream-based programming
  • Using observables to create declarative, asynchronous push streams

Appendix A. Configuring Babel

Babel is a JavaScript-to-JavaScript transpiler in charge of converting next-level JavaScript or future JavaScript to a version of JavaScript that runs standard on your platform, whether it’s a browser or Node.js. This book introduced a few proposals that are still in their beginning stages. For this new syntax to work, we first have to use Babel to convert it to standard JavaScript for the version running inside the Docker container (Node.js 14). You can also transpile to your own platform versions. The bigger the gap between the standard that the code follows (such as ECMAScript 2020) and the standard supported by your browser or server, the more work Babel must do to transpile the code.



• Jaksa Suzic
Ova knjiga deluje zanimljivo. Napokon malo odstupanje od klascnog objasnjavanja JS-a.

Ostavite komentar Ostavite komentar



The Joy of JavaScript

The Joy of JavaScript

Learning JavaScript Data Structures and Algorithms - Second Edition

Learning JavaScript Data Structures and Algorithms - Second Edition

Veze, linkovi
Linkedin Twitter Facebook
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272