A Modern Introduction to Programming
Marijn Haverbeke

#JavaScript
#Programming
#Modern
🚀 این نسخهی کاملاً بازنویسی و بهروزرسانیشده از یکی از پرفروشترین کتابهای آموزش JavaScript، تمرکزش رو روی ساخت اپلیکیشنهای واقعی گذاشته.
🌐 JavaScript تقریباً قلب تمام اپلیکیشنهای مدرن وب محسوب میشه؛ از شبکههای اجتماعی مثل Twitter گرفته تا فریمورکهای بازی تحت مرورگر مثل Phaser و Babylon. با اینکه برای افراد تازهکار یادگیریش سادهست، اما در عین حال زبانی انعطافپذیر و پیچیدهست که میتونی باهاش اپلیکیشنهای بزرگ و حرفهای بسازی.
📘 نسخهی سوم کتاب Eloquent JavaScript که مدتها منتظرش بودن، عمیقتر از همیشه وارد دنیای JavaScript میشه تا بهت یاد بده چطور کدهای تمیز، مؤثر و حرفهای بنویسی. این نسخه بر اساس وضعیت فعلی JavaScript و مرورگرهای مدرن آپدیت شده و مباحث جدیدی مثل Class Notation، Arrow Functionها، Iteratorها، Async Functionها، Template Stringها و Block Scope رو هم پوشش میده. علاوه بر این، تمرینهای جدید زیادی اضافه شده تا هم مهارتت سنجیده بشه و هم در مسیر یادگیری باقی بمونی.
🧠 مثل نسخههای قبلی، مارین هاوربکه آموزش رو با مثالهای زیاد جلو میبره و از همون اول تو رو وارد کدنویسی واقعی میکنه. تمرینها و پروژههای کامل هر فصل هم باعث میشن تجربهی عملی از نوشتن برنامههای واقعی داشته باشی. ابتدا ساختار پایهی زبان JavaScript، ساختارهای کنترلی، توابع و ساختار دادهها رو یاد میگیری تا بتونی برنامههای ساده بنویسی. بعد از اون وارد مباحثی مثل Error Handling، رفع باگ، Modularity و برنامهنویسی Asynchronous میشی و در ادامه یاد میگیری JavaScript چطور مرورگرها رو کنترل میکنه.
🎮 در طول کتاب پروژههایی مثل شبیهسازی حیات مصنوعی، طراحی یک زبان برنامهنویسی ساده و ساخت نرمافزار نقاشی رو پیادهسازی میکنی و یاد میگیری چطور:
⚙️ مفاهیم اصلی برنامهنویسی مثل سینتکس، کنترل جریان و دادهها رو درک کنی.
🧩 با تکنیکهای Object-Oriented Programming و Functional Programming کدهات رو سازماندهی و شفافتر کنی.
🌍 مرورگر رو اسکریپتنویسی کنی و اپلیکیشنهای وب ساده بسازی.
🧠 از DOM بهصورت مؤثر برای تعامل با مرورگر استفاده کنی.
🚀 با Node.js سرور و ابزارهای کاربردی بسازی.
💡 وقتش نیست به زبان وب کاملاً مسلط بشی؟
📑 فهرست مطالب
بخش اول: زبان
فصل ۱: مقادیر، انواع داده و عملگرها
فصل ۲: ساختار برنامه
فصل ۳: توابع
فصل ۴: ساختار دادهها — آبجکتها و آرایهها
فصل ۵: توابع مرتبهبالا
فصل ۶: زندگی مخفی آبجکتها
فصل ۷: پروژه — یک ربات
فصل ۸: باگها و خطاها
فصل ۹: عبارات باقاعده
فصل ۱۰: ماژولها
فصل ۱۱: برنامهنویسی Asynchronous
فصل ۱۲: پروژه — یک زبان برنامهنویسی
بخش دوم: مرورگر
فصل ۱۳: JavaScript و مرورگر
فصل ۱۴: مدل شیءگرای سند (DOM)
فصل ۱۵: مدیریت رویدادها
فصل ۱۶: پروژه — بازی پلتفرمر
فصل ۱۷: رسم روی Canvas
فصل ۱۸: HTTP و فرمها
فصل ۱۹: پروژه — ویرایشگر Pixel Art
بخش سوم: Node
فصل ۲۰: Node.js
فصل ۲۱: پروژه — وبسایت اشتراک مهارت
فصل ۲۲: JavaScript و Performance
📰 نقد و بررسیها
🌟 «نسخهی سوم Eloquent JavaScript یک بهروزرسانی کاملاً ارزشمند و ضروری برای این کتاب محبوبه. فقط پوشش ES6 دلیل خوبی برای دوباره خوندن کتابه، اما این نسخه فراتر از انتظار ظاهر شده؛ با تصویرسازیهای جدید، تمرینهای تازه و نگارشی بهتر. این نسخه نسبت به نسخههای قبلی پیشرفت بزرگی داشته و واقعاً ارزش این همه تعریف رو داره.»
— Books on Code
📘 «یک آموزش JavaScript هوشمند، جمعوجور و خوشخوان که هم نسخهی چاپی داره و هم نسخهی رایگان آنلاین با فرمت عالی... بدون شک یکی از لذتبخشترین کتابهای این لیسته و پر از نکات کاربردیه که اجازه نمیده خسته بشی.»
— Matthew MacDonald، Medium's Young Coder
🚀 «تمام دانشی که برای شروع جدی یک پروژهی JavaScript نیاز داری داخل این کتاب پیدا میشه... کتابیه که بارها بهش برمیگردم چون دوباره JavaScript رو وارد رادارم کرد.»
— GeekTechStuff
🧠 «این کتاب میتونه یک اضافهی فوقالعاده به مجموعه کتابهای مرجع هر توسعهدهندهای باشه. سبک نوشتن نویسنده و شفافیت توضیحاتش واقعاً عالیه. نمونهکدها و تمرینها هم واقعاً کار میکنن؛ چیزی که در کتابهای فنی همیشه رایج نیست.»
— Gary Woodfine، توسعهدهنده نرمافزار
📚 «فکر میکنم این یکی از لذتبخشترین کتابهای برنامهنویسیایه که خوندم. خیلی خلاصه و دقیق ویژگیهای اصلی زبان رو توضیح میده و بعد نشون میده چطور باید از اونها استفاده کرد.»
— Ian Hopkinson
💡 «اگر حتی کمی به یادگیری JavaScript علاقهمندی، انتخاب این کتاب بهعنوان اولین راهنما میتونه تفاوت بین ناامید شدن و رها کردن برنامهنویسی یا عاشق شدن مادامالعمر با اون باشه.»
— Joshua Johnson
👨🏫 «مارین هاوربکه یک فیلسوف زبانهای برنامهنویسی و نابغهی واقعی محسوب میشه. حس شوخطبعی فوقالعادهای داره و هم متن و هم کد رو بهشکل دوستانه و بدون ترس ایجاد کردن توضیح میده. مثل بهترین معلمها، دانشش رو با سادگی منتقل میکنه. من بعد از خوندن این کتاب، معمار، نویسنده، منتور و توسعهدهندهی بهتری شدم.»
— Angus Croll
⚡️ «یک شاهکار واقعی که تو رو از مفاهیم پایه تا اوج تسلط بر JavaScript میبره. نثر محاورهای مارین هاوربکه به JavaScript جان میده و اون رو قابلفهم و جذاب میکنه.»
— Alex Maher
🎯 «یکی از دلایلی که نسخهی سوم Eloquent JavaScript اینقدر خوبه اینه که از پیچیدگی فرار نمیکنه... هاوربکه معلم فوقالعادهایه و انگار بهصورت ذاتی میدونه چطور مفاهیم سخت رو بدون بیشازحد سادهسازی توضیح بده.»
— Neil Abad
👨💻 درباره نویسنده
🌍 مارین هاوربکه عاشق زبانهای برنامهنویسی و یک Polyglot Programmer محسوب میشه. اون روی طیف گستردهای از سیستمهای نرمافزاری کار کرده؛ از دیتابیسها گرفته تا کامپایلرها و ویرایشگرهای کد. همچنین یک کسبوکار کوچک حول پروژههای Open Source خودش اداره میکنه.
Completely revised and updated, this best-selling introduction to programming in JavaScript focuses on writing real applications.
JavaScript lies at the heart of almost every modern web application, from social apps like Twitter to browser-based game frameworks like Phaser and Babylon. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications.
This much anticipated and thoroughly revised third edition of Eloquent JavaScript dives deep into the JavaScript language to show you how to write beautiful, effective code. It has been updated to reflect the current state of Java¬Script and web browsers and includes brand-new material on features like class notation, arrow functions, iterators, async functions, template strings, and block scope. A host of new exercises have also been added to test your skills and keep you on track.
As with previous editions, Haverbeke continues to teach through extensive examples and immerses you in code from the start, while exercises and full-chapter projects give you hands-on experience with writing your own programs. You start by learning the basic structure of the JavaScript language as well as control structures, functions, and data structures to help you write basic programs. Then you'll learn about error handling and bug fixing, modularity, and asynchronous programming before moving on to web browsers and how JavaScript is used to program them. As you build projects such as an artificial life simulation, a simple programming language, and a paint program, you'll learn how to:
- Understand the essential elements of programming, including syntax, control, and data
- Organize and clarify your code with object-oriented and functional programming techniques
- Script the browser and make basic web applications
- Use the DOM effectively to interact with browsers
- Harness Node.js to build servers and utilities
Isn't it time you became fluent in the language of the Web?
Table of Contents
Part I: Language
Chapter 1: Values, Types, and Operators
Chapter 2: Program Structure
Chapter 3: Functions
Chapter 4: Data Structures: Objects and Arrays
Chapter 5: Higher-Order Functions
Chapter 6: The Secret Life of Objects
Chapter 7: Project: A Robot
Chapter 8: Bugs and Errors
Chapter 9: Regular Expressions
Chapter 10: Modules
Chapter 11: Asynchronous Programming
Chapter 12: Project: A Programming Language
Part II: Browser
Chapter 13: JavaScript and the Browser
Chapter 14: The Document Object Model
Chapter 15: Handling Events
Chapter 16: Project: A Platform Game
Chapter 17: Drawing on Canvas
Chapter 18: HTTP and Forms
Chapter 19: Project: A Pixel Art Editor
Part III: Node
Chapter 20: Node.js
Chapter 21: Project: Skill-Sharing Website
Chapter 22: JavaScript and Performance
“Eloquent Javascript 3rd Edition is a worthy and much-needed update to the popular programming book. The fact that the book covers ES6 is worth a re-read, but the new edition goes above and beyond with new illustrations, a new exercise, and tighter writing. The 3rd edition of the book is substantially improved from its predecessors and worthy of the hype.”
—Books on Code
"It’s a smart, lean JavaScript tutorial that exists as an in-print book from No Starch Press, and a free, nicely formatted web version . . . easily the most enjoyable read in this list. And there are so many useful insights that you won’t be bored."
—Matthew MacDonald, Medium's Young Coder
“This is all the JavaScript knowledge you’ll need to hit the ground running in a JavaScript project . . . it’s a book I will be frequently revisiting as it has put JavaScript back on my radar.”
—GeekTechStuff
“This book would make a great addition to any developer's reference books . . . I really like the author's style of writing and clarity of explanations. The sample code and exercises also work, which can be a rare feature in tech-related books”
—Gary Woodfine, Software Developer
“I think this is one of the most enjoyable programming books I’ve read. It covers the core features of the language concisely but then goes on to illustrate how to use those features.”
—Ian Hopkinson, IanHopkinson.org
“If you’re at all interested in learning JavaScript, making this your first guide could mean the difference between getting discouraged and giving up and really getting into programming as a lifelong venture.”
—Joshua Johnson, Design Shack
“Marijn Haverbeke is a software philosopher and all-round genius. He also has a terrific sense of humor and writes both prose and code in a friendly and un-intimidating fashion. In common with the very best teachers he dispenses his wisdom with disarming simplicity. I became a better architect, author, mentor and developer because of this book. It deserves to share shelf space with Flannagan and Crockford.”
—Angus Croll, Javascript We Blog
"A tour de force that takes you from the fundamentals to the heights of JavaScript mastery. Marijn Haverbeke’s conversational prose breathes life into JavaScript, making it accessible and engaging."
—Alex Maher, .NET C# dev
"The author, Marijn Haverbeke, has a great voice."
—Abu Sayed, Sayed.Cyou Blog
"One of the things that makes [Eloquent JavaScript, 3rd Edition] so good is that it doesn’t shy away from complexity . . . Haverbeke is a talented teacher, and he seems to have an intuitive understanding of how difficult concepts can be explained without oversimplifying them."
—Neil Abad, Book Review Buffs
Marijn Haverbeke is a programming language enthusiast and polyglot. He's worked on a wide range of software systems, from databases to compilers to editors. He runs a small business around his open source projects.









