زبان برنامه نویسی جاوا اسکریپت: اطلاعات برای مبتدیان. آنچه شما باید بدانید هر توسعه دهنده جاوا اسکریپت مسئول برنامه نویس جاوا اسکریپت است

ترجمه اقتباس شده از مقاله "کامل-پشته جاوا اسکریپت در شش هفته: راهنمای برنامه درسی"

توسعه وب یکی از ساده ترین و محبوب ترین مسیرها در میان برنامه نویسان مبتدی است. برای کار کاملا هر کسی ویرایشگر متن مرورگر، لازم نیست که الگوریتم ها را بر روی یک سطح پیشرفته مطالعه کنید، نتیجه هر مرحله از نوشتن برنامه به طور کلی، به طور کلی، مزایای زیادی است. مهارت های کلیدی در زمینه توسعه وب، دانش جاوا اسکریپت را در نظر گرفته است.

در حال حاضر جاوا اسکریپت بسیار سریع توسعه می یابد و بنابراین هنگام یادگیری زبان آسان است که گیج شود. ما به شما یک برنامه درسی را با یک ساختار مناسب ارائه می دهیم که تمام جنبه های لازم جاوا اسکریپت و فن آوری های مرتبط را پوشش می دهد.

چرا جاوا اسکریپت؟

قابل توجه است که باز بودن زبان - شرکت ها، معمولا با یکدیگر رقابت می کنند، همکاری می کنند تا جاوا اسکریپت را توسعه دهند. زبان بسیار انعطاف پذیر است و طرفداران هر دو رویکرد شی گرا و عملکردی را برآورده می کند. تعداد زیادی از کتابخانه ها و چارچوب ها به شما اجازه می دهد تا به راحتی هر نوع وظایف را حل کنید، و پلت فرم سرور Node.js باعث می شود که از یک زبان نه تنها در مرورگر استفاده شود، بلکه در کنسول نیز استفاده کنید. شما حتی می توانید دسکتاپ ها را بنویسید و برنامه های موبایل: اول - با چارچوب الکترون، و دوم در NativeScript یا واکنش پذیری بومی است.

مبانی

در ابتدا لازم است که مفاهیم اساسی جاوا اسکریپت، توسعه وب و برنامه نویسی را به طور کلی مطالعه کنیم:

  • jS-Oriented JS - طراحان و کارخانه ها، وراثت؛
  • عملکردی JS - توابع مرتبه بالاتر، بسته شدن، بازگشتی؛
  • مشخصات آزمون یاسمین؛
  • مبانی HTML، CSS و jQuery.

گیت

Git ابزار شما نیاز به توسعه دهندگان، به طوری که آن را به عنوان در اوایل ممکن است. در اینجا مهارت های اساسی است که باید داشته باشید:

  • ایجاد و انتقال فایل ها در دایرکتوری ها؛
  • مقداردهی اولیه و مرتکب شدن در GIT؛
  • تنظیم مخازن در Github.

الگوریتم ها و ساختارهای داده

پس از آن ارزش بررسی الگوریتم ها (به ویژه مفهوم پیچیدگی الگوریتم ها)، و همچنین ساختارهای اولیه داده ها: لیست های متصل، صف ها، پشته ها، درخت های جستجوی باینری و جدول هش. این به شما کمک خواهد کرد.

باطلاق

node.js.

10 سال پیش، جاوا اسکریپت تنها می تواند برای توسعه ظاهری استفاده شود. در حال حاضر به لطف node.js، مورد محدود به یک "جلو" نیست. گره فقط یک محیط برای اجرای کد JS در سمت سرور است، بنابراین شما مجبور نیستید نحو جدید را مطالعه کنید، اما شما نیاز به وارد کردن و صادرات فایل ها، تقسیم کد در ماژول ها و استفاده از مدیر بسته NPM.

سرورها، http، express.js

پس از مطالعه گره، لازم است که با توسعه پشتیبان گیری آشنا شوید و سرورها و مسیریابی را مرتب کنید. شما می توانید از پورت ها و پروتکل ها با تأکید بر HTTP شروع کنید و سپس یک کتابخانه اکسپرس - گره را برای رسیدگی به درخواست ها ببرید.

جاوا اسکریپت ناهمزمان.

پایگاه داده ها، طرح ها، مدل ها و ORM

پایگاه های داده یکی از مهمترین عناصر توسعه وب هستند. اگر درخواست شما نیاز به دانلود یا ذخیره هر گونه اطلاعاتی که هنگام به روز رسانی صفحه از دست ندهید، باید از پایگاه داده استفاده نکنید. لازم است یاد بگیریم که بین پایگاه های داده های ارتباطی و غیر ارتباطی را تشخیص دهیم و انواع اتصالات را درک کنیم. سپس با انواع مختلف آشنا شوید. توانایی کار با ORM نیز غیر ضروری نخواهد بود.

ظاهری

HTML و CSS.

HTML و CSS اساس پایه ای برای هر توسعه دهنده وب است. شما لازم نیست آنها را کاملا بدانید، اما باید آنها را درک کنید. شما همچنین می توانید هر کتابخانه محبوب (به عنوان مثال، بوت استرپ) و پیش پردازنده CSS مانند Sass را کشف کنید - این کمک خواهد کرد که CSS شبیه به کد معمولی باشد. برای ساده سازی کار با HTML، می توانید یکی از قالب های محبوب را انتخاب کنید، به عنوان مثال، Pug.

جی کوئری و دستکاری DOM

پس از ایجاد ظاهر صفحه در کمک به HTML و CSS، شما از کتابخانه جی کوئری برای کنترل DOM استفاده خواهید کرد. بسیاری معتقدند که جی کوئری بی فایده است و به زودی با زاویه ای جایگزین می شود و واکنش نشان می دهد، اما این به طرز شگفت انگیزی محبوب است و بنابراین ارزش آن را می داند. علاوه بر این، یک روز شما به وضعیتی می رسیم که در آن شما ناراحت کننده خواهید بود که میکروسکوپ واکنش را به دست آورید، و سپس جی کوئری آسان به نجات خواهد آمد.

ابزار توسعه دهنده Chrome

این امر غیر قابل انکار خواهد بود که توجه ابزارهای کروم را تقسیم کند که مقدار زیادی از فرصت را فراهم می کند. با آنها می توانید عناصر DOM را مطالعه کنید، از طریق کنسول اشکال زدایی کنید، مسیرها را دنبال کنید و خیلی بیشتر. زیر ویژگی های مناسب کنسول کروم است که اجرای وظایف معمول را ساده می کند.

آژاکس

اگر می خواهید برنامه را پس از هر عملیات پایگاه داده، صفحات را دوباره بارگیری نکنید، مطمئنا به AJAX نیاز دارید - درخواست های HTTP پسزمینه پس از آن را ارسال می کند، پاسخ هایی که تنها بخشی از صفحه نمایش به روز می شود. شما می توانید با استفاده از روش jQuery با استفاده از jQuery کار کنید.

برنامه نویسی تنها راهی برای کسب پول بزرگ نیست و حتی کار روانی کامل نیست. این فرصتی است برای درک آنچه که جهان اطراف او متشکل است، آن را به ذرات کوچک تجزیه می کند، و سپس دوباره جمع آوری، هدایت منطق و دانش خود را.

زبان های برنامه نویسی فقط یک ابزار است که یک فرد قوانین ایجاد شده را ایجاد می کند.

اینترنت فرصت های زیادی دارد که ذهن های روشن و سازنده را به دست می آورند. البته، توسعه وب همچنین دارای ابزارهای خود برای اجرای ایده ها به زندگی است. یکی از آنها - زبان برنامه نویسی جاوا اسکریپت که در این مقاله مورد بحث قرار خواهد گرفت:

اطلاعات کلی

بسیاری از مردم، حتی هیچ ارتباطی با حوزه فناوری اطلاعات ندارند، کلمه جاوا را شنیدند. زبان مستقل انقلابی در زبان که برنامه های کاربردی به طور فعال به صورت فعال هستند سیستم های موبایل. این شرکت توسط شرکت امیدوار کننده خورشید توسعه یافت، که پس از آن "تحت بال" اوراکل عبور کرد. اما هیچ یک از شرکت های دیگر هیچ ارتباطی با جاوا اسکریپت ندارند:

از خورشید فقط اجازه استفاده از بخشی از نام را گرفت. به طور شگفت انگیز، جاوا اسکریپت هیچ ارتباطی ندارد.

هنگام نوشتن برنامه های کاربردی وب، برنامه نویسی جاوا اسکریپت اغلب استفاده می شود. اگر به طور خلاصه لیست کنید ویژگی های کلیدی این زبان باید به شرح زیر انتخاب شود:

  • شی گرا اجرای برنامه تعامل اشیاء است؛
  • آوردن انواع داده ها به صورت خودکار انجام می شود؛
  • توابع اشیاء کلاس پایه هستند. این ویژگی جاوا اسکریپت را شبیه بسیاری از زبان های برنامه نویسی کاربردی مانند LISP و HASKELL می سازد؛
  • تمیز کردن حافظه خودکار. مجموعه به اصطلاح زباله جاوا اسکریپت شبیه به C # یا Java است.

اگر ما در مورد ماهیت استفاده از جاوا اسکریپت صحبت کنیم، این زبان به شما اجازه می دهد تا صفحات ثابت از سایت ها را با استفاده از یک کد که می توان شروع کرد ( به اصطلاح اسکریپت) به این ترتیب، شما می توانید یک تقلید با کارتون هایی که HTML و CSS آنها قهرمانان طرفدار دست هستند، و جاوا اسکریپت چیزی است که آنها را حرکت می دهد.

اگر ما در مورد نحو جاوا اسکریپت صحبت کنیم، ویژگی های زیر ذاتی هستند:

  • ثبت نام مهم است توابع با func () و func () نام ها - کاملا متفاوت است؛
  • پس از اپراتورها، لازم است یک نقطه با کاما قرار دهید؛
  • ساخته شده در اشیاء و عملیات؛
  • فضاها به حساب نمی آیند شما می توانید از چند رشته، و همچنین ترجمه های رشته برای ترتیب کد خود استفاده کنید.

ساده ترین کد در جاوا اسکریپت به نظر می رسد این است:

دامنه کاربرد

به منظور درک اینکه چرا جاوا اسکریپت مورد نیاز است، و چقدر لازم است مطالعه، برخی از مناطق که در آن اعمال می شود این زبان برنامه نويسي.

  • توسعه نرم افزار وب آیا می خواهید یک شمارنده ساده نصب کنید، انتقال داده ها را بین فرم ها ترتیب دهید یا در بازی سایت خود قرار دهید؟ سپس جاوا اسکریپت دستیار وفادار را در این زمینه ایجاد می کند؛
  • "مشارکت فعال" در آژاکس. این تکنولوژی به طور قابل توجهی برنامه های کاربردی را تسریع کرده است، انتقال داده ها را با سرور در حالت "پس زمینه" انجام می دهد:
  • سیستم عامل شاید کسی نمی داند، اما ویندوز، لینوکس و مک رقبای مرورگر خود را دارند، سهم شیر از کد که در جاوا اسکریپت نوشته شده است؛
  • برنامه های موبایل؛
  • دامنه آموزش هر گونه برنامه نویس تخصص در دانشگاه شامل مطالعه جاوا اسکریپت به یک یا چند راه دیگر است. این به خاطر این واقعیت است که زبان در ابتدا برای برنامه نویسان بسیار قوی توسعه یافت. درس های جاوا اسکریپت منطقی به دوره HTML پایه بافته شده است، بنابراین توسعه به سادگی به اندازه کافی عبور می کند.

مزایا و معایب

فکر نکنید که جاوا اسکریپت نوعی از Panacea از تمام مشکلات است، و هر برنامه نویس با لبخند روی صورت از این زبان لذت می برد. همه چیز در جهان دارای طرف مثبت و منفی خود است. برای شروع، ما از کاستی ها یاد می گیریم.

  • نیاز به ارائه مرورگر متقابل. از آنجایی که جاوا اسکریپت به عنوان یک تکنولوژی اینترنت عمل می کند، باید با قوانینی که وب جهان را ایجاد می کنند، قرار دهید. کد باید به درستی انجام شود، یا حداقل محبوب ترین مرورگرها؛
  • سیستم ارث در زبان باعث می شود مشکلات در درک آنچه اتفاق می افتد. جاوا اسکریپت بر اساس نمونه های اولیه اجرا شده است. افرادی که سایر زبان های برنامه نویسی شی گرا را مطالعه کرده اند به طور معمول عادت کرده اند " کلاس نسل کلاس والدین را به ارث می برد" اما در جاوا اسکریپت، چنین چیزهایی به طور مستقیم در اشیاء مشغول به کار هستند و این در سر مناسب نیست؛
  • غایب کتابخانه استاندارد. جاوا اسکریپت هیچ فرصتی برای کار با فایل ها، جریان های I / O و سایر چیزهای مفید ارائه نمی دهد؛
  • نحو به طور کلی دشوار است درک کند. زیبایی کد به وضوح یک جاوا اسکریپت نیست، اما حاکمیت اصلی برنامه نویسان مشاهده شده است: " آثار؟ تلاش نکن!».

در حال حاضر ارزش اشاره برخی از مزایای

  • جاوا اسکریپت فراهم می کند تعداد زیادی از فرصت ها برای حل انواع مختلفی از وظایف. انعطاف پذیری زبان به شما امکان می دهد از قالب های برنامه نویسی چندگانه در رابطه با شرایط خاص استفاده کنید. ذهن نوآورانه لذت فعلی را دریافت خواهد کرد؛
  • محبوبیت جاوا اسکریپت مقدار قابل توجهی از کتابخانه های آماده شده را قبل از برنامه نویس باز می کند، که به شما اجازه می دهد تا به طور قابل توجهی ساده سازی کد نوشتن و سطح ناقص نحوی را ساده کنید؛
  • کاربرد در بسیاری از مناطق. ویژگی های جاوا اسکریپت گسترده به برنامه نویسان فرصتی می دهند تا خود را به عنوان یک توسعه دهنده از طیف گسترده ای از برنامه های کاربردی امتحان کنند، و این قطعا علاقه مندی به فعالیت های حرفه ای است.

به این واقعیت توجه نکنید که معایب بیش از مزایای معلوم شده است. جاوا اسکریپت به طور جدی در طاقچه خود ثابت شد، و هیچ انتقادی از آنجا این لحظه انتخاب نمی کند

برای کسانی که می خواهند مطالعه کنند

یک راه دشوار و طولانی به کسانی که تصمیم گرفت به طور کامل جاوا اسکریپت را یاد بگیرند. برای مبتدیان توصیه های اساسی وجود دارد، پس از آن، ممکن است به طور قابل توجهی آموزش خود را ساده تر کنید.

  • اول از همه، HTML. غیر ممکن است شروع به انجام کاری برای اینترنت بدون اصول اولیه اصول اولیه انجام دهید. ورق های سبک Cascading (CSS) نیز بسیار مفید خواهد بود؛
  • از ادبیات جدید استفاده کنید. برنامه نویسی فیزیک نیست، قوانینی که ضروری هستند، و کتاب های درسی جدید قطع می شوند. فناوری های فناوری اطلاعات به طور مداوم در حال توسعه هستند، و نباید با به روز رسانی های مفید نادیده گرفته شود؛
  • سعی کنید همه بخش های برنامه را بنویسید. اگر چیزی به این معنا نیست
  • اشکال زدایی دوست وفادار شماست. به سرعت خطاهای پیدا کنید - یکی از مهمترین نکات در برنامه نویسی؛
  • هنجارهای قالب بندی را نادیده نگیرید. البته، کد بهتر نخواهد بود و یا بدتر از تعداد دیگری از اندام و فضاها، اما سهولت خواندن و درک برنامه نویس نیز یک لحظه مهم است. کد زیر؟ بسیار دشوار درک شده، به خصوص اگر شما او نیستید
  • نام متغیر باید یک مقدار واژگانی داشته باشد. در روند نوشتن برنامه های ساده به نظر می رسد مهم نیست، اما زمانی که تعداد ردیف کد بیش از یک هزار رول - همه شیاطین شکستن پاها؛

جاوا اسکریپت یک زبان به طور مداوم در حال توسعه است، به ویژه در حال حاضر، زمانی که برنامه به روز رسانی مشخصات ECMAScript سالانه تاسیس شده است. در این راستا، اهمیت دانش جاوا اسکریپت خارج از جی کوئری افزایش می یابد.

البته، در این مقاله ما نمی توانیم کل نیاز به دانش را پوشش دهیم. مطمئنا، لحظاتی وجود خواهد داشت که من از دست دادم، شاید من اشتباه کردم یا نظرات ما با شما در مورد مجموعه لازم از دانش متفاوت خواهد بود.

با توجه به این جنبه ها، بیایید شروع کنیم ...

آزمون Fizzizbiz چیست؟

Fizzizzzz - به عنوان یک قاعده، یک آزمایش کوچک با هدف کاهش توسعه دهندگان بی تجربه است. من فکر می کنم شما شگفت زده خواهید شد که چگونه بسیاری از توسعه دهندگان جاوا اسکریپت نمی دانند که چگونه چنین تست هایی را بنویسند.

به عنوان یک قاعده، چنین تست ها بار زیادی را حمل نمی کنند. این به طور انحصاری برای بررسی توانایی های نامزدهای بالقوه هدایت می شود.

به یاد داشته باشید، احتمال این که از شما خواسته شود یک آزمایش مشابه در مصاحبه انجام دهید بسیار بزرگ است.

مثال از آزمون Fizzizbizz کلاسیک:

گزینه هایی برای چنین تست ها بی حد و حصر هستند. هنگامی که در مصاحبه، من به چنین تست رفتم، پس از آن من مجبور شدم دو گزینه دیگر را حل کنم.

برای (var i \u003d 1؛ i<= 100; i++) { if (i % 15 == 0) { console.log("FizzBuzz"); } if (i % 3 == 0) { console.log("Fizz"); } if (i % 5 == 0) { console.log("Buzz"); } }

تفاوت بین \u003d\u003d و \u003d\u003d\u003d

شما احتمالا با هر دو اپراتور مقایسه آشنا هستید. با این وجود، آیا می دانید دقیقا این اپراتورها چیست؟ لینتر جاوا اسکریپت شما نیاز به استفاده از اپراتور \u003d\u003d\u003d، تعجب چرا؟

به جای آن، انواع operands را مقایسه نمی کند، به جای آن، منجر به یک نوع می شود. چنین عملیاتی دارای شهرت منفی است.

console.log (24 \u003d\u003d "24")؛ // درست است، واقعی.

همانطور که می بینید، یک مقدار رشته از 24 (در نقل قول های تک) به یک نوع عدد صحیح داده شد. البته، موقعیت هایی وجود دارد که در آن شما دقیقا و چه می خواهید، اما اغلب اوقات آیا شما می خواهید به رانندگی نوع داده های دستکاری اپراتور مقایسه کنید. مقایسه داده ها با استفاده از اپراتور \u003d\u003d توصیه نمی شود، اکثر سیستم های چک کردن کد سبک جاوا اسکریپت شما را در این خطا نشان می دهد.

\u003d\u003d\u003d (مقایسه دقیق) انواع داده ها را مقایسه می کند، بدون تبدیل آنها به یک نوع، یعنی داده ها به عنوان آن مقایسه می شود. همچنین، از آنجا که نوع انواع در این عملیات دخیل نیست، سریعتر کار می کند. به طوری که این اپراتور به درستی گسترش می یابد، اپراتورهای مشابهی مورد نیاز خواهند بود.

همان مثال، اما با اپراتور \u003d\u003d\u003d

console.log (24 \u003d\u003d\u003d "24")؛ // false

در پاسخ، ما به دست می آوریم، از آنجا که operands انواع مختلف، یکی از آنها نوع عدد صحیح و رشته دوم است.

نحوه انتخاب عناصر DOM بدون کتابخانه های اضافی

مطمئنا شما با چگونگی نمونه ای از عناصر با استفاده از جی کوئری آشنا هستید، اما می توانید همین کار را انجام دهید، اما بدون کمک این کتابخانه؟

منظورم این نیست که فقط یک آیتم را با یک شناسه خاص یا مجموعه ای از کلاس ها انتخاب کنید، من در مورد عبارات صحبت می کنم تا موارد را با استفاده از جی کوئری جستجو کنم.

چندین روش بومی برای جستجو برای عناصر در DOM وجود دارد که به جی کوئری پایین تر نیستند. ما همچنین می توانیم از انتخاب کنندگان نوع اول کودک، آخرین نوع کودک و غیره استفاده کنیم.

با برخی از این روش ها آشنا شوید

  • document.GetElementByid یک روش کلاسیک برای پیدا کردن موارد توسط شناسه آنها است.
  • document.getElementsbyclassName - انتخاب عناصر بر روی مقدار میدان کلاس ClassName
  • document.queryselector یک روش عالی است که عملا به طور کامل جایگزین $ () انتخابگر از جی کوئری، اما در حال حاضر در جاوا اسکریپت گنجانده شده است. تنها تفاوت این است که تنها عنصر اول یافت می شود.
  • document.queryselectorall - آنالوگ از روش قبلی، اما آرایه ای از موارد موجود را باز می گرداند.
  • document.getElementsbytagname - این روش به شما کمک خواهد کرد که عناصر را از طریق برچسب انتخاب کنید. اگر شما نیاز به پیدا کردن تمام اقلام DIV، پس شما به این روش نیاز دارید.

من همچنین می خواهم توجه داشته باشم که روش های Queryselector و Queryselectorall را می توان نه تنها در کل سند، بلکه همچنین بر روی موارد فردی استفاده کرد، یعنی شما می توانید نمونه را در یک عنصر والدین انجام دهید.

در اسناد Mozilla شما شرح کامل این روش ها را پیدا خواهید کرد.

افزایش تبلیغات متغیرها و توابع

جاوا اسکریپت علاقه مند به چگونگی پردازش متغیرها و توابع اعلام شده است، همه آنها به طور خودکار دامنه را افزایش می دهند. بنابراین، شما می توانید به آنها مراجعه کنید تا تبلیغات خود را در دامنه دید (به عنوان مثال، توابع در جاوا اسکریپت دارای دامنه خاص خود).

بنابراین، برای راحتی خواندن کد، قانون را به همیشه اعلام کنید متغیرها را در ابتدای دامنه اعلام کنید. اگر شما "استفاده از سختی" را در بالای اسکریپت یا عملکرد مشخص کنید، هنگام دسترسی به یک متغیر غیر ضروری، شما یک خطا دریافت خواهید کرد.

اکثر ابزارهای چک کردن سبک کد، مانند JShint، اگر شما از "استفاده سخت" استفاده نکنید، بر اساس این، اگر شما سعی می کنید یک کد خوب بنویسید، در هر صورت از متغیرها استفاده نکنید غوک. همانطور که همیشه، اگر سوالاتی وجود داشته باشد، با مستندات موزیلا تماس بگیرید، شما همیشه شرح کامل و جامع از مشکل خود را پیدا خواهید کرد.

با استفاده از ابزارهای توسعه دهنده در مرورگر

اغلب این ابزار برای استفاده از اسکریپت های جاوا اسکریپت استفاده می شود، اما قابلیت های آنها محدود نیست. به عنوان مثال، شما می توانید از نقطه توقف استفاده کنید، گام به گام اسکریپت خود را انجام دهید، در همان زمان وارد هر تابع شوید.

این ابزار کمک های ضروری را ارائه می دهد، زیرا شما می توانید به طور کامل عملیات درخواست خود را پیگیری کنید و مناطق مضطرب را پیدا کنید.

پس از آموختن آموخته به استفاده از ابزارهای توسعه دهنده در چنین مرورگرهایی به عنوان Chrome، Firefox و آخرین نسخه های اینترنت اکسپلورر، شما می توانید اسکریپت خود را اشکال زد، سرعت آن را اندازه گیری کرده و مکان هایی را پیدا کنید که ارزش الگوریتم کار را بهبود بخشد.

هرگز سعی نکنید کد کورکورانه را ببندید، ابتدا همیشه آن را با استفاده از ابزارهای توسعه دهنده تحلیل کنید. راه حل مشکلات غیر موجود یک زمان صرفا صرفا است.

تیم های کنسول

بگذارید به آیتم بعدی در مطالعه ابزارهای توسعه دهنده تبدیل شویم. به عنوان یک قاعده، همه آنها یک کنسول ارائه می دهند که در آن شما می توانید کد جاوا اسکریپت را مهار کنید.

مطمئنا، شما قبلا با چنین تیم هایی به عنوان Console.Log و Console.Error آشنا هستید، اما این به عملکرد کنسول محدود نمی شود.

من می خواهم بلافاصله توجه داشته باشم که تمام دستورات ذکر شده در تمام مرورگرها کار نخواهد کرد. من سعی خواهم کرد فقط کسانی را که در مرورگرهای مدرن کار می کنند ذکر کنم. با این وجود، به عنوان یک شورا، من می گویم که قبل از اعمال آنها، سعی کنید خود را آزمایش کنید، به طوری که بیهوده کد را چک نمی کند.

  • console.log - برای حفظ ورود به سیستم استفاده می شود. پشتیبانی از قالب بندی
  • console.Error - برای خطاهای ورود به سیستم در کد. من از این دستور استفاده می کنم زمانی که خطاها در پرس و جو های AJAX و در سایر بخش های بالقوه خطرناک کد رخ می دهد. این روش مشابه قبلی است، اما لیستی از تماس های پشته را نمایش می دهد.
  • console.dir (Object) - محتوای فرمت شده از شی را نمایش می دهد. همانطور که استفاده می شود، این روش هنگام اشکال زدایی کد بسیار مفید است.
  • console.Group (عنوان) - به شما اجازه می دهد یک گروه از پیام ها را در log به نام عنوان ایجاد کنید. به این ترتیب، شما می توانید پیام ها را به عنوان مثال، به عنوان مثال، توسط بخش کد که در آن تولید می شود، گروه بندی کنید.
  • console.GroupCollpased یک آنالوگ از فرمان قبلی در یک استثنا است. یعنی این پیام ها را در فرم تاشو نمایش می دهد.
  • console.Groupend - گروه قبلا ایجاد شده را به پایان می رساند.
  • console.Time (برچسب) - به شما اجازه می دهد تا سرعت سایت را در میلی ثانیه پیگیری کنید. این روش مفید است هنگام استفاده از بخش های کد بالقوه پیچیده.
  • console.Timeend (Label) یک آنالوگ از روش گروهی است، اما با توجه به Console.Time () کار می کند.
  • کپی (رشته) - در کنسول Chrome و فایرفاکس یک روش وجود دارد که به شما اجازه می دهد تا محتویات رشته را به کلیپ بورد کپی کنید. روش بسیار مفید، سعی کنید آن را اعمال کنید.

دقیقا چه چیزی در این زمینه وجود دارد

اول از همه، این یک منبع بزرگ از مشکلات برای کسانی است که به طور کامل درک نمی کنند دقیقا شامل این کلمه کلیدی است. و در این بسیار ساده اشتباه می شود، زیرا محتویات آن به طور کامل وابسته به ساختار کد است.

در زبان های برنامه نویسی سنتی، این شامل یک مرجع به شیء کلاس فعلی است. اما از آنجا که جاوا اسکریپت دور از سنت است، پس در آن این متغیر به شیء پدر و مادر شی اشاره می کند.

ساده ترین راه برای درک این است که آن را برای مالک یا والدین روش استفاده کنید. این همیشه به والدین (والدین) اشاره دارد، به استثنای مواردی که از تماس استفاده می کنید، روش های اعمال یا اتصال را استفاده می کنید.

در مثال زیر، این توسط پنجره اشاره شده است:

تابع myfunction () (console.log (این \u003d\u003d\u003d پنجره)؛ // درست) myfunction ()؛

مطمئنا، شما یک سوال دارید، اگر بتوانیم در این روش درخواست تجدید نظر کنیم؟ اگر پاسخ به این سوال را می دانید، به طور کامل، در غیر این صورت آن را بخوانید و سعی خواهم کرد توضیح دهم.

هنگام اعلام عملکرد به این ترتیب، به شیء پنجره جهانی متصل می شود. به یاد داشته باشید، آیا ما می گوییم این به روش روش اشاره دارد؟

تغییر ارزش این در یک شی کاملا جدید (نه پنجره):

تابع myFunction () (console.log (این \u003d\u003d\u003d پنجره)؛ // false) myfunction جدید ()؛

حامیان پاکیزگی کد مطمئنا در شوک از چنین نمونه ای. ما فقط به نمونه های Iceberg می رویم. همانطور که می بینید، این مقدار دیگر برابر با پنجره نیست.

چرا این اتفاق افتاد؟

ساده ترین توضیح - در مثال دوم، ما از کلمه کلیدی جدید استفاده کردیم، این بیشتر ما یک دامنه جدید و یک شی جدید ایجاد کردیم.

در مثال زیر، ما یک API ساختگی ایجاد خواهیم کرد تا داده ها را از کتابخانه از سرور خارج کنیم. ما یک شیء API با برخی از روش ها ایجاد خواهیم کرد.

هنگام استفاده از کلمه جدید، زمینه اسکریپت از پنجره پنجره به API حرکت می کند.

var api \u003d (getdata: function (console.log (the \u003d\u003d\u003d window)؛ // console_log (این \u003d\u003d\u003d API)؛ // true))؛ api.getdata ()؛

همانطور که می بینید، ارزش این به طور کامل در روش فراخوانی روش تنظیم شده است. از آنجایی که تابع در داخل شیء API نامیده می شود، والدین آن، پس از آن ارزش این توسط شیء API اشاره می شود.

به یاد داشته باشید، این مقدار تغییر می کند. این بسته به روش تماس متفاوت است، اما اگر از روش اتصال استفاده می کنید، مقدار این باقی مانده بدون تغییر است.

در جزئیات بیشتر با کلمه کلیدی در جاوا اسکریپت، شما می توانید در مقاله Quirksmode و مستندات موزیلا آشنا شوید.

استفاده از سختی '؛

همانطور که قبلا قبلا مشخص شده اید، کاربر دقیق برای اعمال یک نسخه سخت تر از زبان جاوا اسکریپت استفاده می شود. این دستورالعمل به دنبال اعمال در تمام اسکریپت ها است.

به طور پیش فرض، جاوا اسکریپت در نحو آن بسیار رایگان است. این به سادگی بخش اشتباه کد را از دست خواهد داد و سعی کنید خطوط زیر را اجرا کنید، در حالی که چیزی برای شما نمی گوید.

در مستند سازی موزیلا، مقاله ای کامل در این موضوع وجود دارد، من به شدت توصیه می کنم که او را ملاقات کنید.

انواع مختلف چرخه

شما شگفت زده خواهید شد، اما تعداد زیادی از توسعه دهندگان را دیدم که نمی دانستند چگونه از چرخه به درستی استفاده کنند و کاملا در مورد سایر انواع چرخه ها نپذیرفتند. و قادر به استفاده از یک چرخه بر روی یک آرایه یا شی - یک مهارت بسیار مهم برای توسعه دهنده است. هیچ دستورالعمل واضح وجود ندارد و چه چیزی باید نوع چرخه را اعمال کند، اما باید در این زمینه حرکت کنید. مطمئنا شما با آن آشنا هستید، اما در مورد دیگران چه؟

فهرست چرخه ها در جاوا اسکریپت:

  • برای ...
  • برای ... اضافه شده به ES6)
  • برای هر.
  • در حالی که
  • انجام در حالی که.

چرخه برای

چرخه کاملا اجباری که باید بداند و درک کند. هنگام انجام وضعیت 2 بدن خود را انجام می دهد.

برای (شرط 1؛ شرایط 2؛ شرط 3) (/ / / کد شما)

Condition 1 - یک بار قبل از شروع سری چرخه اجرا شده است. در اغلب موارد، شمارنده چرخه را در اینجا آغاز خواهید کرد. این مورد را می توان از دست داد اگر قبلا مقداردهی کنید.

شرایط 2 - این شرایط برای تعیین ادامه چرخه استفاده می شود یا نه. احتمالا شمارنده خود را با اندازه آرایه در اینجا مقایسه خواهید کرد. اگر مقدار مقایسه واقعی، چرخه ادامه یابد. اگر شما چرخه را در داخل با شکستن قطع می کنید، این وضعیت را می توان از بین برد.

وضعیت 3 - این سایت پس از هر تکرار، به عنوان یک قاعده اجرا می شود، در اینجا شمارنده خود را افزایش می دهید.

چرخه برای ... در

زیر نوع چرخه است. با آن، شما می توانید از طریق تمام زمینه های کلاس بروید.

بگذارید یک مثال بگذاریم

var person \u003d (firstname: "dwayne"، lastname: "Charrington"، سن: 27، Starsign: "Aquarius")؛ // حلقه زیر خروجی: // "Dwayne" // "Charrington" // 27 // "Aquarius" برای (اگر (person.hasownproperty (p)) (console.log (person [p])؛)

چرخه برای ... از

نوع جدیدی از چرخه، به ES6 اضافه شد. با توجه به تازگی آن، توسط تمام مرورگرها پشتیبانی نمی شود. اما هنگام استفاده از فن آوری های خاص، می توان آن را امروز استفاده کرد.

این چرخه کاملا متضاد کامل برای ... در، آن را از طریق مقادیر میدان می رود و تنها با انواع داده ها کار می کند که تکرارهای پشتیبانی می کند که کدام شیء اعمال نمی شود.

var fruits \u003d ["نارنجی"، "سیب"، "اسکواش"، "گلابی"]؛ برای (Var میوه میوه ها) (console.log (میوه)؛)

بزرگ این نوع چرخه این است که ما دیگر نیازی به ایجاد یک اشاره گر نیستیم و طول آرایه را دنبال می کنیم تا به طور کامل از طریق عناصر آن عبور کنیم.

چرخه foreach

نوع دیگری از چرخه، که در عمق آن هیچ نوع دیگری از چرخه های ذکر شده متفاوت نیست.

این تنها با آرایه ها کار می کند، نه اشیاء. این امر برای این واقعیت مفید است که شما مجبور نیستید متغیرهای اضافی را ایجاد کنید که در نهایت کد شما را آلوده می کند. \\

مطمئنا این نوع محدود ترین نوع چرخه است، اما این برنامه های کاربردی خاص خود را دارد که می داند:

var fruits \u003d ["اپل"، "موز"، "نارنجی"، "انگور"، "گلابی"، "passionfruit"]؛ // سه مقادیر بر روی تابع callback عبارتند از: // عنصر - عنصر عبور // index - شاخص فعلی آیتم در آرایه با شروع از 0// array - آرایه عبور (احتمالا بیشتر بی ربط) میوه ها Furseach (تابع (عنصر، شاخص، آرایه) (Console.Log (شاخص، عنصر)؛)))؛

گاهی اوقات شما فقط باید از طریق تمام عناصر آرایه بروید و شاید برخی از تغییرات را در آنها ایجاد کنید. رفتار او شبیه به jQuery است.

یک کمبود این نوع چرخه - نمی توان آن را قطع کرد. اگر شما نیاز به ایجاد یک چرخه با توجه به قوانین ES5 دارید، از روش Array.Erly استفاده کنید تا آشنا شوید که می توانید در اسناد موزیلا آشنا شوید.

در حالی که چرخه

در حالی که چرخه شبیه به آن است، اما تنها یک پارامتر را می پذیرد - وضعیت خود را که توسط آن چرخه تعیین می کند برای ادامه تکراری یا متوقف کردن آنها را می پذیرد.

اگر چه این نوع چرخه سریع ترین در نظر گرفته می شود، من فکر می کنم این لحظه کاملا بحث برانگیز است. من فکر می کنم شما نمی توانید استدلال نکنید که این نوع چرخه مراقب دیگران نیست، و سرعت آن تنها می تواند با سادگی منطق داخلی توضیح داده شود.

با توجه به تجربه، من می گویم که سریعترین نسخه چرخه چرخه یک چرخه با کاهش در متر است، شما آن را در هر واحد کاهش می دهید تا زمانی که به صفر برسد (که همچنین ادعا می شود).

var I \u003d 20؛ در حالی که (I--) (console.log (i)؛)

چرخه ... در حالی که

چنین چرخه بسیار نادر است، اما هنوز هم ارزش معرفی او را به درک کار خود را.

در حالی که چرخه ممکن است هیچ تکرار را انجام ندهد. به این معنا، اگر شما مقدار کاذب را به عنوان یک شرایط چرخه منتقل کنید، پس هیچ تکرار اجرا نخواهد شد. ... در حالی که چرخه تضمین شده است برای انجام حداقل یک عملیات.

این تفاوت پایان نمی یابد. در حالی که چرخه قبل از انجام تکرار، شرایط را پردازش می کند و ... در حالی که بعد از آن انجام می شود.

همانطور که همیشه، در مستندات موزیلا، توضیحات مفصلی از این نوع چرخه را پیدا خواهید کرد.

روش های اساسی و وظایف

جاوا اسکریپت روش های اساسی وجود دارد که باید شناخته شود. با توجه به کار با آرایه ها و ردیف ها، جاوا اسکریپت مجموعه ای از روش های داخلی را ارائه می دهد. ما تنها آرایه ها و خطوط را لمس خواهیم کرد، اشیاء را بعدا ترک می کنیم.

اگر شما علاقه مند به کار با انواع دیگر داده ها هستید، با مستندات موزیلا تماس بگیرید. البته، شما نباید تمام این روش ها را از طریق قلب بدانید، من فقط آنهایی را که به نظر می رسد لازم است، توصیف خواهم کرد.

کار با رشته ها

در جاوا اسکریپت، شما اغلب با داده های رشته کار می کنید، با استثنا، احتمالا آرایه ها و اشیاء. حتی اگر شما با ردیف ها کار نکنید، یا فکر کنید که شما کار نمی کنید، پس هنوز هم با این روش ها آشنا می شود.

  • String.Replace (Regexp | چه چیزی جایگزین جایگزینی، Callback) - به شما اجازه می دهد تا بخشی از خط را جایگزین کنید، مجاز به استفاده از عبارات منظم است.
  • String.Concat (Storok 1، Line 2 ...) - اتصال چندین خط در یک.
  • String.indexof (Value) - این روش به شما اجازه می دهد تا تعداد توالی نماد بخش مورد نظر از خط را پیدا کنید، -1 - اگر رشته یافت نشد
  • String.Slice (StartIndex، Endindex) - یک منطقه رشته را از StartIndex به Endindex باز می گرداند
  • String.Split (جدا کننده، محدودیت) - رشته را به یک آرایه از نماد جداکننده، حداکثر طول محدود می کند.
  • String.SubSctr (StartIndex، طول) - بخشی از رشته شروع را با شروع طولانی شروع می کند.
  • String.ToloweCase - تمام کاراکترهای رشته را در حروف کوچک ترجمه می کند
  • String.Touppercase - انتقال تمام کاراکترهای رشته در ثبت نام بالا
  • String.Trim - فضاهای را از ابتدا و انتهای خط حذف می کند

کار با آرایه ها

شما اغلب باید با آرایه ها ملاقات کنید. آنها خود را به عنوان راهی برای ذخیره داده ها ثابت کرده اند. این روش ها دقیقا ارزش دانستن هر توسعه دهنده جاوا اسکریپت را دارند، شما نباید آنها را در Google جستجو کنید.

  • Array.Pop توسط آخرین عنصر هدایت می شود و آن را از آرایه حذف می کند.
  • Array.Shift - اولین عنصر را باز می گرداند و آن را از آرایه حذف می کند.
  • Array.push (Val1، Val2) - یک یا چند مقدار را به انتهای آرایه اضافه می کند. یک طول آرایه جدید را باز می گرداند.
  • Array.Reverse - آینه تغییر سفارش عناصر آرایه.
  • Array.Sort - به شما اجازه می دهد تا آرایه را با استفاده از عملکرد خود مرتب کنید.
  • Array.Join (جداساز) - یک رشته متشکل از عناصر آرایه جدا شده توسط نماد جداساز (به طور پیش فرض - کاما) را باز می کند.
  • Array.indexof (ارزش) - شاخص عنصر را در آرایه باز می گرداند، اگر آیتم یافت نشد.

این یک لیست کامل از روش های کار برای کار با آرایه نیست. با دیگران شما می توانید مستندات را از موزیلا بخوانید. با شروع از ES6، روش های بسیار جالب اضافه شده است.

تفاوت بین تماس و اعمال

این دو روش اغلب اشتباه گرفته می شوند. اغلب شما می توانید بدون آنها انجام دهید، اما آنها به تماس با روش ها کمک می کنند و ارزش این را در حین اعدام تغییر می دهند.

تفاوت بین آنها بسیار کوچک است، اما وجود دارد. هنگام استفاده از روش تماس، می توانید تعداد نامحدودی از استدلال را با تقسیم آنها با کاما تنظیم کنید.

با استفاده از روش اعمال، شما می توانید استدلال را به عنوان یک آرایه انتقال دهید و این مقدار را تغییر دهید.

اگر شما نیاز به انتقال آرایه به عنوان یک روش استدلال، سپس با استفاده از اپراتور پیشرفته ES6 (گسترش). این اجازه نمی دهد شما این را تغییر دهید. شما می توانید با او آشنا شوید، همانطور که همیشه در اسناد رسمی موزیلا است.

مثال تماس:

تابع myfunc () (console.log (استدلال)؛) myfunc.call (این، 1، 2، 3، 4، 5)؛

مثال مثال:

تابع myfunc () (console.log (استدلال)؛) myfunc.call (null،)؛

آشنایی با کتابخانه ها و چارچوب ها

امروزه نمایندگان قابل توجه ترین چارچوب جاوا اسکریپت، AngularJS، React.js و Ember هستند. البته هنوز تعدادی دیگر وجود دارد.

از آنجا که برنامه های کاربردی وب بیشتر و بیشتر می شوند، این کتابخانه ساده با آنها کار می کند. لازم به درک است که در حال حاضر دانستن یک جی کوئری به وضوح کافی نیست. بیشتر جای خالی به دانش کتابخانه های جاوا اسکریپت اضافی به عنوان نیاز اصلی تعیین می شود.

node.js.

بدون شک node.js موقعیت جامد را اشغال می کند. تقریبا هر ابزار جلویی در node.js ساخته شده است و از NPM (مدیر بسته بندی گره) استفاده می کند، اگر آن را نا آشنا باشد، من به شدت به شما توصیه می کنم این نادیده گرفتن را اصلاح کنید. از آنجا که node.js از جاوا اسکریپت استفاده می کند، یادگیری آن هیچ مشکلی خاصی برای کسانی که قبلا با این زبان آشنا هستند، نشان نمی دهد. شما زمان بیشتری را برای تنظیم بسته های گره بیشتر از نوشتن کد خود خواهید برد.

شخصا، من فکر می کنم که با گره باید علامت هر توسعه دهنده در سال 2015 باشد. من در مورد دانش عمیق صحبت نمی کنم، به اندازه کافی قادر به استفاده از آن برای توسعه سرور، نمونه سازی، تست، و غیره است.

Fork Node.js به نام io.js وجود دارد، امروز آنها عملا آنالوگ هستند، و در نهایت شما فقط به جاوا اسکریپت بنویسید به جز برای تفاوت های کوچک.

آزمایش کردن

هنگامی که ما کد جاوا اسکریپت را آزمایش نکردیم، زیرا آنها لازم نیست. اما اسکریپت ها به لطف Angularjs و Node.js بیشتر و بیشتر تبدیل می شوند

جاوا اسکریپت توسعه می یابد و حجم اسکریپت ها افزایش می یابد و آزمایش می شود حیاتی است. اگر کد خود را آزمایش نکنید، اشتباه می کنید. تستر مورد علاقه من کارما است. دیگران وجود دارد، اما این خاص خود را بهتر از همه در هنگام کار با AngularJS ثابت کرده است. و اگر آن را برای AngularJS مناسب است، آن را مناسب برای من مناسب است.

ابزار

به عنوان یک توسعه دهنده جاوا اسکریپت در سال 2015 به معنای نه تنها دانش عالی از زبان، بلکه تعداد زیادی از ابزارهایی برای کار با آن است.

گاهی اوقات ابزار شامل مرورگر خود است که ما استفاده می کنیم. و گاهی اوقات شما باید به ابزار شخص ثالث مراجعه کنید تا تجزیه و تحلیل عمیق تر از وضعیت را بدست آورید.

در اینجا مجموعه ای از ابزارهایی است که باید به یاد داشته باشید: GULP، WEBPACK و BABELJS. ابزار بسیار بیشتری وجود دارد، اما ابزارهایی مانند Gulp و Grunt به شما کمک می کند تا برنامه های جاوا اسکریپت را توسعه و مدیریت کنید.

این روزها را گذراند وقتی که شما فقط فایل جاوا اسکریپت را دانلود کردید و آن را به صفحه خود اضافه کردید. در حال حاضر ما از مدیران بسته NPM یا Bower استفاده می کنیم.

ما اسکریپت ها را ترکیب می کنیم و به حداقل می رسانیم، آنها را آزمایش می کنیم، که به سازماندهی ساختار پروژه کمک می کند.

ابزارهای جاوا اسکریپت در هنگام توسعه جاوا اسکریپت ایزومورفیک (کد مورد استفاده هر دو در طرف مشتری و سرور) دست در دست دارند. ECMAScript 6، او ES6 است، او esnext است

مرورگرها هنوز باید بیشتر از عملکرد ECMAScript اجرا شوند. اما امروز شما می توانید از موارد جدید از ES6 با استفاده از کامپایلرهای جاوا اسکریپت استفاده کنید. با API ها و روش های جدید آشنا شوید: ردیف ها، آرایه ها و سایر روش ها مانند ضعیف، نمادها و کلاس ها. شما همیشه باید از تغییرات آینده مطلع شوید.

نتیجه

من می توانم خیلی به شما بگویم. قضاوت بر اساس اندازه این مقاله، شما می توانید تصور کنید چقدر شما باید بدانید توسعه دهنده جاوا اسکریپت. ما فقط تاپ های کوه یخ را لمس کردیم. فکر نکنید که این مقاله باید به عنوان یک راهنما برای توسعه دهنده درک شود. این فقط دیدگاه شخصی من از مشکل است.