{"product_id":"javascript-9781119367956","title":"JavaScript","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cp\u003e\u003cb\u003eAll of JavaScript''s newest features, in depth, made easy to understand.\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eJavaScript is a rapidly changing language and it can be challenging to keep up with all the new toys being added. \u003ci\u003eJavaScript: The New Toys\u003c\/i\u003e explores the newest features of the world''s most popular programming language while also showing readers how to track what''s coming next. After setting the stage by covering who manages the process of improving JavaScript, how new features get introduced, terminology, and a high-level overview of new features, it details each new or updated item in depth, with example uses, possible pitfalls, and expert recommendations for updating old habits in light of new features. JavaScript: The New Toys:\u003c\/p\u003e \u003cul\u003e \u003cli\u003eCovers all the additions to JavaScript in ES2015-ES2020 plus a preview of what''s coming next\u003c\/li\u003e \u003cli\u003eExplores the latest syntax: nullish coalescing, optional chaining, \u003ccode\u003elet\u003c\/code\u003e and \u003ccode\u003econst\u003c\/code\u003e, \u003ccode\u003eclass\u003c\/code\u003e syntax, private meth\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003e\u003cp\u003eIntroduction xxxi\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: The New Toys In ES2015–ES2020, and Beyond 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDefinitions, Who’s Who, and Terminology 2\u003c\/p\u003e \u003cp\u003eWhat are the “New Toys”? 4\u003c\/p\u003e \u003cp\u003eHow Do New Toys Get Created? 6\u003c\/p\u003e \u003cp\u003eKeeping Up with the New Toys 9\u003c\/p\u003e \u003cp\u003eUsing Today’s Toys in Yesterday’s Environments, and Tomorrow’s Toys Today 10\u003c\/p\u003e \u003cp\u003eReview 15\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Block-Scoped Declarations: Let and Const 17\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAn Introduction to let and const 18\u003c\/p\u003e \u003cp\u003eTrue Block Scope 18\u003c\/p\u003e \u003cp\u003eRepeated Declarations are an Error 19\u003c\/p\u003e \u003cp\u003eHoisting and the Temporal Dead Zone 20\u003c\/p\u003e \u003cp\u003eA New Kind of Global 22\u003c\/p\u003e \u003cp\u003econst: Constants for JavaScript 24\u003c\/p\u003e \u003cp\u003eBlock Scope in Loops 26\u003c\/p\u003e \u003cp\u003eOld Habits to New 36\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: New Function Features 39\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eArrow Functions and Lexical this, super, etc. 40\u003c\/p\u003e \u003cp\u003eDefault Parameter Values 45\u003c\/p\u003e \u003cp\u003e “Rest” Parameters 50\u003c\/p\u003e \u003cp\u003eTrailing Commas in Parameter Lists and Function Calls 52\u003c\/p\u003e \u003cp\u003eThe Function name Property 53\u003c\/p\u003e \u003cp\u003eFunction Declarations in Blocks 55\u003c\/p\u003e \u003cp\u003eFunction Declarations in Blocks: Standard Semantics 57\u003c\/p\u003e \u003cp\u003eOld Habits to New 60\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: Classes 65\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat is a Class? 66\u003c\/p\u003e \u003cp\u003eIntroducing the New class Syntax 66\u003c\/p\u003e \u003cp\u003eComparing with the Older Syntax 75\u003c\/p\u003e \u003cp\u003eCreating Subclasses 77\u003c\/p\u003e \u003cp\u003eLeaving Off Object.prototype 97\u003c\/p\u003e \u003cp\u003enew.target 98\u003c\/p\u003e \u003cp\u003eclass Declarations vs. class Expressions 101\u003c\/p\u003e \u003cp\u003eMore to Come 103\u003c\/p\u003e \u003cp\u003eOld Habits to New 104\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: New Object Features 105\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eComputed Property Names 106\u003c\/p\u003e \u003cp\u003eShorthand Properties 107\u003c\/p\u003e \u003cp\u003eGetting and Setting an Object’s Prototype 107\u003c\/p\u003e \u003cp\u003eMethod Syntax, and super Outside Classes 109\u003c\/p\u003e \u003cp\u003eSymbol 112\u003c\/p\u003e \u003cp\u003eNew Object Functions 120\u003c\/p\u003e \u003cp\u003eSymbol.toPrimitive 123\u003c\/p\u003e \u003cp\u003eProperty Order 125\u003c\/p\u003e \u003cp\u003eProperty Spread Syntax 127\u003c\/p\u003e \u003cp\u003eOld Habits to New 128\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: Iterables, Iterators, For-Of, Iterable Spread, Generators 131\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIterators, Iterables, the for-of Loop, and Iterable Spread Syntax 131\u003c\/p\u003e \u003cp\u003eGenerator Functions 146\u003c\/p\u003e \u003cp\u003eOld Habits to New 163\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7: Destructuring 165\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eOverview 165\u003c\/p\u003e \u003cp\u003eBasic Object Destructuring 166\u003c\/p\u003e \u003cp\u003eBasic Array (and Iterable) Destructuring 169\u003c\/p\u003e \u003cp\u003eDefaults 170\u003c\/p\u003e \u003cp\u003eRest Syntax in Destructuring Patterns 172\u003c\/p\u003e \u003cp\u003eUsing Different Names 173\u003c\/p\u003e \u003cp\u003eComputed Property Names 174\u003c\/p\u003e \u003cp\u003eNested Destructuring 174\u003c\/p\u003e \u003cp\u003eParameter Destructuring 175\u003c\/p\u003e \u003cp\u003eDestructuring in Loops 178\u003c\/p\u003e \u003cp\u003eOld Habits to New 179\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8: Promises 181\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhy Promises? 182\u003c\/p\u003e \u003cp\u003ePromise Fundamentals 182\u003c\/p\u003e \u003cp\u003eUsing an Existing Promise 186\u003c\/p\u003e \u003cp\u003eAdding Handlers to Already Settled Promises 201\u003c\/p\u003e \u003cp\u003eCreating Promises 202\u003c\/p\u003e \u003cp\u003eOther Promise Utility Methods 207\u003c\/p\u003e \u003cp\u003ePromise Patterns 210\u003c\/p\u003e \u003cp\u003eHandle Errors or Return the Promise 210\u003c\/p\u003e \u003cp\u003ePromises in Series 211\u003c\/p\u003e \u003cp\u003ePromises in Parallel 213\u003c\/p\u003e \u003cp\u003ePromise Subclasses 218\u003c\/p\u003e \u003cp\u003eOld Habits to New 219\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9: Asynchronous Functions, Iterators, and Generators 221\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003easync Functions 222\u003c\/p\u003e \u003cp\u003easync Iterators, Iterables, and Generators 232\u003c\/p\u003e \u003cp\u003efor-await-of 238\u003c\/p\u003e \u003cp\u003eOld Habits to New 238\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10: Templates, Tag Functions, and New String Features 241\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eTemplate Literals 241\u003c\/p\u003e \u003cp\u003eImproved Unicode Support 250\u003c\/p\u003e \u003cp\u003eIteration 255\u003c\/p\u003e \u003cp\u003eNew String Methods 256\u003c\/p\u003e \u003cp\u003eUpdates to the match, split, search, and replace Methods 259\u003c\/p\u003e \u003cp\u003eOld Habits to New 260\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11: New Array Features, Typed Arrays 263\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eNew Array Methods 264\u003c\/p\u003e \u003cp\u003eIteration, Spread, Destructuring 276\u003c\/p\u003e \u003cp\u003eStable Array Sort 276\u003c\/p\u003e \u003cp\u003eTyped Arrays 277\u003c\/p\u003e \u003cp\u003eOld Habits to New 292\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12: Maps and Sets 293\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eMaps 293\u003c\/p\u003e \u003cp\u003eSets 300\u003c\/p\u003e \u003cp\u003eWeakMaps 304\u003c\/p\u003e \u003cp\u003eWeakSets 314\u003c\/p\u003e \u003cp\u003eOld Habits to New 316\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 13: Modules 319\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroduction to Modules 319\u003c\/p\u003e \u003cp\u003eModule Fundamentals 320\u003c\/p\u003e \u003cp\u003eRenaming Exports 331\u003c\/p\u003e \u003cp\u003eRe-Exporting Exports from Another Module 332\u003c\/p\u003e \u003cp\u003eRenaming Imports 333\u003c\/p\u003e \u003cp\u003eImporting a Module’s Namespace Object 333\u003c\/p\u003e \u003cp\u003eExporting Another Module’s Namespace Object 334\u003c\/p\u003e \u003cp\u003eImporting a Module Just for Side Effects 335\u003c\/p\u003e \u003cp\u003eImport and Export Entries 335\u003c\/p\u003e \u003cp\u003eImports are Live and Read-Only 338\u003c\/p\u003e \u003cp\u003eModule Instances are Realm-Specific 340\u003c\/p\u003e \u003cp\u003eHow Modules are Loaded 341\u003c\/p\u003e \u003cp\u003eImport\/Export Syntax Review 348\u003c\/p\u003e \u003cp\u003eDynamic Import 350\u003c\/p\u003e \u003cp\u003eTree Shaking 357\u003c\/p\u003e \u003cp\u003eBundling 359\u003c\/p\u003e \u003cp\u003eImport Metadata 360\u003c\/p\u003e \u003cp\u003eWorker Modules 360\u003c\/p\u003e \u003cp\u003eOld Habits to New 362\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 14: Reflection—Reflect and Proxy 365\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eReflect 365\u003c\/p\u003e \u003cp\u003eProxy 371\u003c\/p\u003e \u003cp\u003eOld Habits to New 395\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 15: Regular Expression Updates 397\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Flags Property 398\u003c\/p\u003e \u003cp\u003eNew Flags 398\u003c\/p\u003e \u003cp\u003eNamed Capture Groups 400\u003c\/p\u003e \u003cp\u003eLookbehind Assertions 405\u003c\/p\u003e \u003cp\u003eUnicode Features 408\u003c\/p\u003e \u003cp\u003eOld Habits to New 413\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 16: Shared Memory 417\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroduction 417\u003c\/p\u003e \u003cp\u003eHere There Be Dragons! 418\u003c\/p\u003e \u003cp\u003eBrowser Support 418\u003c\/p\u003e \u003cp\u003eShared Memory Basics 420\u003c\/p\u003e \u003cp\u003eMemory is Shared, Not Objects 426\u003c\/p\u003e \u003cp\u003eRace Conditions, Out-of-Order Stores, Stale Values, Tearing, and More 427\u003c\/p\u003e \u003cp\u003eThe Atomics Object 429\u003c\/p\u003e \u003cp\u003eShared Memory Example 434\u003c\/p\u003e \u003cp\u003eHere There Be Dragons! (Again) 455\u003c\/p\u003e \u003cp\u003eOld Habits to New 460\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 17: Miscellany 461\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBigInt 462\u003c\/p\u003e \u003cp\u003eNew Integer Literals 465\u003c\/p\u003e \u003cp\u003eNew Math Methods 467\u003c\/p\u003e \u003cp\u003eExponentiation Operator (**) 468\u003c\/p\u003e \u003cp\u003eDate.prototype.toString Change 470\u003c\/p\u003e \u003cp\u003eFunction.prototype.toString Change 471\u003c\/p\u003e \u003cp\u003eNumber Additions 471\u003c\/p\u003e \u003cp\u003eSymbol.isConcatSpreadable 474\u003c\/p\u003e \u003cp\u003eVarious Syntax Tweaks 475\u003c\/p\u003e \u003cp\u003eVarious Standard Library \/ Global Additions 479\u003c\/p\u003e \u003cp\u003eAnnex B: Browser-Only Features 482\u003c\/p\u003e \u003cp\u003eTail Call Optimization 488\u003c\/p\u003e \u003cp\u003eOld Habits to New 491\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 18: Upcoming Class Features 493\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003ePublic and Private Class Fields, Methods, and Accessors 493\u003c\/p\u003e \u003cp\u003eOld Habits to New 514\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 19: A Look Ahead . . .517\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eTop-Level await 518\u003c\/p\u003e \u003cp\u003eWeakRefs and Cleanup Callbacks 525\u003c\/p\u003e \u003cp\u003eRegExp Match Indices 533\u003c\/p\u003e \u003cp\u003eString.prototype.replaceAll 535\u003c\/p\u003e \u003cp\u003eAtomics asyncWait 535\u003c\/p\u003e \u003cp\u003eVarious Syntax Tweaks 536\u003c\/p\u003e \u003cp\u003eLegacy Deprecated RegExp Features 537\u003c\/p\u003e \u003cp\u003eThank You for Reading! 538\u003c\/p\u003e \u003cp\u003e\u003cb\u003eAppendix: Fantastic Features and Where to Find Them 539\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIndex 557\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"John Wiley \u0026 Sons Inc","offers":[{"title":"Default Title","offer_id":49528853365079,"sku":"9781119367956","price":999.99,"currency_code":"GBP","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781119367956.jpg?v=1731873281","url":"https:\/\/bookcurl.com\/products\/javascript-9781119367956","provider":"Book Curl","version":"1.0","type":"link"}