مفاهیم ضروری در JS

در ابتدا ممکن است Javascript بخاطر شباهت به syntaxt زبان C، آسان به نظر برسد .با این حال ، نحوه انجام آن ، تغییرات مداوم ایجاد شده در زبان (ESNext) و چارچوب های آن ممکن است بر مبتدیان غلبه کند.من اینجا هستم تا سردرگمی پیرامون آنچه که من فکر می کنم یک زبان زیبا ، اما مهمتر از همه ، بسیار پردرآمد است را برطرف کنم .بسیار سودآور است زیرا JS می تواند تقریباً هر کاری را که امروز می خواهید با سهولت انجام دهد.آیا می خواهید یک برنامه وب ایجاد کنید؟ مشکلی نیستآیا می خواهید یک ابزار CLI بسازید؟ مشکلی نیستآیا می خواهید یک برنامه دسکتاپ بسازید؟ راحت تر از چیزی که فکر می کنید انجام می شود!تعداد روزافزون بسته ها و کتابخانه هایی که روزانه در دسترس قرار می گیرد نشان می دهد که JS در هنگام ساختن یک برنامه نرم افزاری چقدر انتزاعی است.با این حال به نظر می رسد JS نفرت زیادی را دریافت می کند ، عمدتا به دلیل اینکه در مقایسه با رقبای خود غیر معمول است. برای هر کسی که ممکن است جنبه های نظری JS را از دست بدهد گیج کننده است.بسیاری از مردم قبل از غرق شدن در زبان ، جنبه های نظری جاوا اسکریپت را نادیده می گیرند. این مفاهیم به ما کمک می کند تا سر خود را در مسیرها و الگوهای مختلفی که هنگام ساختن برنامه های جاوا اسکریپت در پیش می گیریم ، بچرخانیم. این الگوها در هر چارچوبی در JS وجود دارد ، بنابراین گذر از این مفاهیم قبل از یادگیری خود زبان بسیار منطقی است. https://virgool.io/d/csqntffiett3/%F0%9F%93%B7 ویژگی های JSچند پارادایمجاوا اسکریپت از برنامه نویسی عملکردی رویه ای ، شی گرا و رویداد محور پشتیبانی می کند!آشنایی با شیوه برنامه نویسی شی گرا JS می تواند بسیار مفید باشد.برنامه نویسی شی گرا به برنامه نویسان کمک می کند تا اجزای یک برنامه نرم افزاری را به آسانی تجسم کنند.علاوه بر این ، یادگیری Typescript (جاوا اسکریپت با Typeها) به برنامه نویسان این امکان را می دهد تا بهترین الگوهای طراحی را با سهولت زیادی پیاده سازی کنند. این الگوهای طراحی برای حل متداول ترین مشکلاتی که در برنامه نویسی نرم افزار با آن روبرو می شوند به کارآمدترین شکل ممکن استفاده می شود.این تطبیق پذیری ، جاوا اسکریپت را بسیار قابل دستیابی اما بسیار قدرتمند می کند.تفسیر شدهجاوا اسکریپت متفاوت از ++C/C است که در آن به جای خواندن یک برنامه ، خط به خط تفسیر می شود. این بدان معناست که JS کندتر از زبانهای کامپایل شده مانند ++C/C است.هشدار: جاوا اسکریپت به دلیل داشتن یک زبان بسیار منفعل در زمان اجرا بدنام است. عیب یابی خطاها بسیار دشوار است.با این حال ناامید نشوید. با گذر زمان و تمرین ، یاد خواهید گرفت که چگونه با خیال راحت قایقرانی کنید. رایج ترین خطا شامل بازگشت مقادیر NULL متغیرهای شما است . هنگامی که چنین مسائلی ظاهر می شود ، به Stack Overflow بروید زیرا من به شما اطمینان می دهم ، شما اولین نفری نیستید که با خطا درگیر می شوید ، مهم نیست که چقدر خوب باشیدد. با این حال همیشه ایده خوبی است که از console.log()در حالی که پروژه های شما در حال توسعه هستند استفاده کنید. این به شما کمک می کند تا دقیقاً لحظه ای را در چرخه عمر برنامه خود انتخاب کنید ، جایی که ممکن است متغیر شما از بین رفته باشد.تک رشتهجاوا اسکریپت فقط می تواند یک کار واحد را همزمان انجام دهد. بر اساس نوع ، وظایف مختلف را در صف های مختلف قرار می دهد.در انتزاعی ترین مفهوم ، جاوا اسکریپت اساساً وظایف همگام و وظایف ناهمزمان را گروه بندی کرده و آنها را جداگانه در صف قرار می دهد.وظایف همزمان عبارتهایی هستند که در لحظه برخورد با آنها پردازش می شوند ، یعنی فوراً اجرا می شوند. این وظایف شامل دستورات log ، اعلان های متغیر ، بررسی شرطی و غیره است.وظایف ناهمزمان شامل وظایفی است که ممکن است زمان متغیری برای بازگرداندن خروجی طول بکشد. یک مثال برای کارهای ناهمزمان ممکن است درخواست اطلاعات از API های وب باشد.علاوه بر این ، جاوا اسکریپت همچنین دارای صف مشاغل است که برای مقابله با ویژگی JS به نام Promises استفاده می شود.با کلیک راست روی این صفحه وب و زدن برگه Inspect، عملاً می توانید ماهیت تک رشته ای Javascript را مشاهده کنید. بعد ، به برگه کنسول در پنجره ای که تازه باز شده است بروید. کد زیر را تایپ کرده و enter را بزنید.while(true) {}اکنون می توانید مشاهده کنید که این صفحه کاملاً پاسخگو نیست. این به این دلیل است که جاوا اسکریپت در این صفحه در حال حاضر مشغول اجرای حلقه نامحدود while است که در بالا اجرا کردیم.عدم انسدادما قبلاً در مورد وظایف ناهمزمان بحث کرده ایم. از آنجا که JS در یک محیط تک رشته ای اجرا می شود ، به طور پیش فرض ، منتظر هیچ کس نیست!بلوک های کد ناهمزمان تنها پس از اجرای همه بلوک های کد همزمان بدون در نظر گرفتن موقعیت کد در برنامه اجرا می شوند.console.log(&quotI'm the first statement&quot) setTimeout(()=> { console.log(&quotI'm the second statement&quot) },1000) console.log(&quotI'm the third statement&quot)در اینجا console.log()دستور داخل آن را به کنسول وصل می کند. تابع بالا اجرا می شود عبارت دوم پس از یک ثانیه است.setTimeout()در بررسی خروجیI'm the first statement I'm the third statement I'm the second statementمی بینیم که دستور سوم قبل از دستور دوم ثبت شده است. این به دلیل روش ذاتی JS در مدیریت بلوک های کد Sync و Async است. https://virgool.io/d/csqntffiett3/%F0%9F%93%B7 سطح بالاجاوا اسکریپت یک زبان سطح بالا است. زبانهای سطح بالا به سادگی می توانند به این معنی باشند که بسیار بیشتر به زبانی که انسانها صحبت می کنند ، نزدیک هستند. زبانهای سطح بالا قادر به ارائه ویژگیهای بیشتری هستند تا به برنامه نویسان کمک کند تا آنچه را که می خواهند بسازند بهتر بیان کنند.این ماهیت سطح بالای جاوا اسکریپت به آن کمک می کند تا به بهترین نحو به بخش سمت مشتری از وب خدمت کند. یک محدودیت عمده برای JS این بود که فقط در سمت سرویس گیرنده قابل ارائه بود و نمی توانست مانند اکثر زبان های سمت سرور دستکاری فایل را انجام دهد.با این حال این امر تغییر کرده است و NodeJSبه توسعه دهندگان اجازه می دهد از Javascript برای ساخت سرورهای پشتیبان استفاده کنند. بنابراین تنها با یک زبان ، یک توسعه دهنده نرم افزار می تواند هم در سمت سرور و هم در سمت سرویس گیرنده کار کند. این امر منجر به برجسته شدن مهندسان Full Stack شده است.به صورت پویا تایپ شده استجاوا اسکریپت یک زبان تایپ شده پویا است. این بدان معناست که بر خلاف C که ما باید نوع داده یک متغیر را مشخص کنیم ، می توانیم در جاوا اسکریپت از type-inference استفاده کنیم تا نوع داده ها را بطور خودکار متوجه شود.// In C variables must have datatypes. In order to change datatypes from one type to //another , we need to use type-casting int a = 5; char b = &quota&quot float c = 7.036;در جاوا اسکریپت ، ما به ترتیب از متغیرها یا ثابت ها استفاده می کنیم و آنها را با let و constاعلام می کنیم.let a = 5 console.log(a) // 5 a = 'Hello World' console.log(a) // Hello World const b = 'JS is awesome' console.log(b) // JS is awesome b = 'I changed my mind' console.log(b) // Error: const cannot be changedدر حالی که استنباط نوع به دلیل سهولت استفاده ممکن است یک نقطه مثبت به نظر برسد ، اما بلافاصله به عنوان یک نقصان برای پروژه های بزرگتر که نیاز به ایمنی نوع دارند ، تبدیل می شود.به همین دلیل ، پروژه های بزرگتر از TypeScript استفاده می کنند که فقط یک جاوا اسکریپت است که انواع ، رابط ها و ویژگی های مختلف دیگر را ارائه می دهد.استراتژی یادگیریمدتی طول می کشد تا در JS Minimum Requirementsمستقر شوید ، اما من یک چک لیست ساده دارم که برای یادگیری چارچوب هایی مانند Express یا ReactJS استفاده می شود.در ابتدا ، به دنبال یادگیری این چارچوب ها نباشید. برای تسلط بر وانیلا جاوا اسکریپت وقت بگذارید.اصول اولیهمتغیرها و ثابت هابلوک های شرطی (if-else)حلقه ها (for، while، forEach)Switch caseFuntionsاینها اصول اساسی برنامه نویسی شما هستند.قسمت پیشرفته (حداقل شرایط مورد نیاز)Async/AwaitPromisesClasses in JavascriptRest/Spread SyntaxArray/Object IteratorsArray DestructuringModules (import,export)با ساختن پروژه ها به یادگیری ادامه دهید و به زودی تسلط کاملی بر زبان خواهید داشت.https://salehrezaei.com