ترجمه‌ی کتاب Eloquent JavaScript: فصل سوم:‌ توابع

کتاب جاوااسکریپت شیوا،‌فصل سوم: توابعاگر در جریان ترجمه‌ی تدریجی کتاب نیستین اینجا رو چک کنین: https://virgool.io/@dotmehran/%D8%AA%D8%B1%D8%AC%D9%85%D9%87-%D8%AA%D8%AF%D8%B1%DB%8C%D8%AC%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8-eloquent-javascript-e3v6u1lz6jnb به لطف خدا فصل سوم کتاب هم مورد بازبینی قرار گرفت و چند لحظه‌ی پیش کامیت شد. این فصل سومین فصل از کتاب جاوااسکریپت شیوا است که در باره‌ی یکی از مهم ترین مفاهیم برنامه‌نویسی و به طور خاص، جاوااسکریپته. موضوع توابع یا functions.مثل همیشه بخش آخر این فصل که ترجمه‌ی خلاصه‌ی فصل به زبان نویسنده‌ی کتابه رو اینجا قرار میدم. خلاصه انتهای فصلاین فصل به شما آموخت که چگونه توابع خودتان را بنویسید. زمانی که کلمه‌ی کلیدیfunction به عنوان یک عبارت استفاده می شود، می تواند یک مقدار تابع را ایجاد کند. زمانی‌ هم که به عنوان یک دستور استفاده می شود، متغیری را اعلان می کند و تابعی را به عنوان مقدار آن به آن اختصاص می دهد. روش پیکانی (arrow function) نیز راهی دیگر برای ایجاد توابع است.// Define f to hold a function value const f = function(a) { console.log(a + 2); }; // Declare g to be a function function g(a, b) { return a * b * 3.5; } // A less verbose function value let h = a => a % 3;نقطه‌ی کلیدی در فهم توابع، درک مفهوم قلمرو‌ها است. هر بلاک از کد قلمروی جدیدی را ایجاد می کند. پارامترها و متغیرهایی که درون یک بلاک اعلان می شوند نسبت به آن تابع محلی هستند، و از بیرون بلاک قابل دسترسی نیستند. متغیرهایی که با کلیدواژه‌ی varایجاد می شوند به شکل متفاوتی عمل می کنند – محدوده‌ی آن‌ها تا پایان حوزه‌ی نزدیک ترین تابع یا فضای سراسری برنامه است.جداسازی کارهایی که برنامه‌ی شما انجام می دهد به وسیله‌ی توابع مختلف، کاری مفید است. این کار باعث می شود که از تکرار بی مورد پرهیز کنید و به سازماندهی یک برنامه به وسیله‌ی دسته‌بندی آن به قسمت‌هایی تخصصی، کمک می کند.تمرین‌های انتهای فصل کمینهدر فصل قبل با تابع استاندارد Math.min که کوچکترین عدد را از بین آرگومان‌های ورودی برمی گرداند آشنا شدید. خودمان هم می توانیم این کار را برنامه نویسی کنیم. تابعی به نام min بنویسید که دو آرگومان دریافت کرده و کوچکترین آن‌ها را باز می‌گرداند.بازگشتقبلا دیده بودایم که عملگر % (باقی مانده) را می توان برای تشخیص زوج یا فرد بودن عدد استفاده کرد که برای این کار با استفاده از % 2، بخش پذیری بر 2 مورد آزمایش قرار می گرفت. در اینجا با راهی دیگر برای تشخیص زوج یا فرد بودن یک عدد صحیح مثبت آشنا می شویم:صفر را زوج در نظر می گیریمیک فرد استبرای هر عددی دیگر N، زوج بودن آن معادل N - 2 خواهد بود.تابع بازگشتی isEven را با توجه به توضیحات بالا تعریف کنید. تابع باید پارامتری مثبت و از جنس اعداد صحیح دریافت کند و مقداری از جنس بولی برگرداند.تابع را با مقادیر 50 و 75 تست کنید. بررسی کنید که اگر -1 را به آن بدهید چه خواهد شد. چرا؟ آیا می توانید راهی برای حل مشکل پیش آمده پیدا کنید؟شمارش دانهبرای بدست آوردن کاراکتر یا حرف Nام یک رشته، می توانید از "string"[N] استفاده کنید. مقداری که برگردانده می شود رشته‌ای است که فقط یک کاراکتر دارد. (مثلا رشته‌ی "b"). کاراکتر اول در جایگاه صفرم قرار دارد. بنابراین آخرین کاراکتر در جایگاه string.length - 1 قرار می گیرد. به عبارتی دیگر، یک رشته‌ی دو کاراکتری طولش 2 کاراکتر است و کاراکتر‌هایش در جایگاه 0 و 1 قرار دارند.تابعی به نام countBs بنویسید که رشته ای را به عنوان تنها آرگومانش می پذیرد و عددی را برمیگرداند که نشان می دهد چند کاراکتر “B” بزرگ در رشته وجود دارد.بعد، تابعی به نام countChar بنویسید که شبیه countBs کار می کند اما آرگومان دومی نیز دریافت می کند که مشخص کننده کاراکتری است که بایستی شمرده بشود ( به جای اینکه فقط B شمرده شود ). تابع countBs را بازنویسی کنید تا این ویژگی جدید را داشته باشد.برای مطالعه‌ی کامل فصل سوم کتاب،‌لطفا اینجا کلیک کنید.لطف می کنید اگر فصل‌های ترجمه‌ شده رو به دوستانتون معرفی کنید.