how javascript works

这系列文章的开创者是SessionStack的创始人Alexander Zlatkov,最开始应该发布在SessionStack网站的博客上,为他公司引流。

后面SessionStack网站改版,在公司博客里找不到了,但还有继续发布在Medium上。第27篇之前发布在个人频道,从第27篇开始就发布在公司频道sessionstack-blog下。此时作者已经不再是Alexander Zlatkov,是很多其他人,估计是公司开发团队成员。

国内有人翻译了这系列文章的一部分(截止本文撰写时间,翻译了29篇),放在Github上,how-javascript-works

这个系列一直在更新,截止至目前,已经有75篇。最后一篇#76发布于今年5月。

已完成的文章目录:

  1. An overview of the engine, the runtime, and the call stack
  2. Inside Google’s V8 engine + 5 tips on how to write optimized code
  3. Memory management + how to handle 4 common memory leaks
  4. The event loop and the rise of Async programming + 5 ways to better coding with async/await
  5. Deep dive into WebSockets and HTTP/2 with SSE + how to pick the right path
  6. A comparison with WebAssembly + why in certain cases it’s better to use it over JavaScript
  7. The building blocks of Web Workers + 5 cases when you should use them
  8. Service Workers, their life-cycle, and use cases
  9. The mechanics of Web Push Notifications
  10. Tracking changes in the DOM using MutationObserver
  11. The rendering engine and tips to optimize its performance
  12. Inside the Networking Layer + How to Optimize Its Performance and Security
  13. Under the hood of CSS and JS animations + how to optimize their performance
  14. Parsing, Abstract Syntax Trees (ASTs) + 5 tips on how to minimize parse time
  15. The internals of classes and inheritance + transpiling in Babel and TypeScript
  16. Storage engines + how to choose the proper storage API
  17. The internals of Shadow DOM + how to build self-contained components
  18. WebRTC and the mechanics of peer to peer networking
  19. Under the hood of custom elements + Best practices on building reusable components
  20. exceptions + best practices for synchronous and asynchronous code
  21. 5 types of XSS attacks + tips on preventing them
  22. CSRF attacks + 7 mitigation strategies
  23. iterators + tips on gaining advanced control over generators
  24. Cryptography + how to deal with man-in-the-middle (MITM) attacks
  25. Functional style and how it compares to other approaches
  26. Three types of polymorphism
  27. Regular expressions (RegExp)
  28. Introduction to Deno
  29. Creational, Structural, and Behavioural design patterns + 4 best practices
  30. Modularity and reusability with MVC
  31. Cross-browser testing + tips for prerelease browsers
  32. The “this” variable and the execution contextf
  33. High-performing code + 8 optimization tips
  34. Debugging overview + 4 tips for async code
  35. Deep dive into call, apply, and bind
  36. The evolution of graphics
  37. Dockerizing a Node.js application
  38. A deep dive into decorators
  39. Best practices for data compliance
  40. Arrays vs Hash Tables
  41. Proxy and Reflect
  42. SVG and its use cases (part 1)
  43. Class static blocks + 6 proposed semantics
  44. Introduction to Graphs and Trees
  45. Introduction to PM2, Strongloop, and Forever + 4 tips for Production Process Managers
  46. Аdvanced SVG capabilities (part 2)
  47. Тhe publisher-subscriber pattern
  48. Stacks and Queues + tips for efficient implementation
  49. Lists vs Blockchain + implementation practices
  50. The module pattern + comparing CommonJS, AMD, UMD, and ES6 Modules
  51. The different types of conditional statements + 3 best practices
  52. The different ways of declaring a function + 5 best practices
  53. The factory design pattern + 4 use cases
  54. A guide to build tools + exploring Webpack, Parcel, Rollup, ES Build, and Snowpack
  55. Building a child process in Node.js
  56. Streams and their use cases
  57. understanding Maps and their use cases + 4 advantages compared to Objects
  58. A deep dive into Webpack
  59. Recursion in JavaScript, What It Is, and How it is used
  60. Implementation of gRPC in a Nodejs application
  61. A deep dive into Vite
  62. A deep dive into esbuild
  63. Database Indexing. The Good and Bad Parts
  64. understanding Snowpack, the next generation JavaScript bundler
  65. parallelism vs concurrency in JavaScript, what’s the difference?
  66. Optional chaining and BigInt, new game-changer features for data analysts.
  67. A complete guide to Events And Event Listeners in JavaScript
  68. Why you need a CLI and How to build a CLI with JavaScript
  69. Nodejs Performance And Thread Pool Management
  70. Understanding modular and functional programming with JavaScript and Firebase…
  71. A complete guide to asynchronous JavaScript
  72. Understanding WebSockets in Nodejs with Socket.io
  73. Deploying a Nodejs application with Kubernetes
  74. JavaScript Location Object And How Protocols Work
  75. hat are Task Runners + Introduction to Gulp

关于JS顺便推一下另一本书,《You Dont Know JS》