قالب های فارسی وردپرس 9

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

قالب های فارسی وردپرس 9

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

استیصال آمریکا در برابر احتکار فناوری 5G توسط چین

گزارش‌های متعددی در ارتباط با احتکار مواد معدنی و فلزات توسط چینی‌ها منتشر می‌شود. موادی همچون لیتیوم، عناصر خاکی کم‌یاب، مس و منگنز که برای فناوری‌های جدید حیاتی هستند و کاربردهای متنوعی از گوشی‌های هوشمند تا خودروهای الکتریکی دارند. از سال ۲۰۱۵ چین اولین تولیدکننده و عرضه‌کننده‌ی ۲۳ عدد از ۴۱ عنصر حیاتی جهان است. این عناصر، طبق نظر انجمن زمین‌شناسی بریتانیا برای حفظ اقتصاد و زندگی روزمره‌ی مردم جهان، حیاتی هستند. به‌علاوه، آن کشور توزیع ۹ عدد از ۱۰ عنصر در معرض اتمام جهان را نیز به‌صورت انحصاری در اختیار دارد.

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

یکی از پروژه‌های مهم و بلندپروازانه‌ی چین در صنعت فناوری، راه ابریشم نام دارد. آن‌ها زیرساخت و سرمایه‌های لازم را در ۷۰ کشور تأمین می‌کنند که تأثیرات مهمی روی ۴۰ درصد از اقتصاد جهان خواهد گذاشت. در بخشی از آن پروژه، هر خط ریلی حاضر در مسیر اوراسیا (خط اتصالی اروپا و آسیا) و درگیر با پروژه‌ی راه ابریشم، به خطوط پر سرعت فیبر نوری مجهز خواهند شد که داده‌ها را با سرعت هرچه بیشتر بین خطوط اتصالی جابه‌جا می‌کنند. برنامه‌ی مهم و مشابه دیگر چین، ارائه‌ی خطوط پر سرعت فیبر نوری، به ۸۰ درصد از خانه‌های موجود در کشور است.

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

چین

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

توسعه‌ی خطوط ارتباطی فیبر نوری، سلطه بر فناوری 5G را برای چینی‌ها ممکن می‌کند

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

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

عنصر اساسی و مهم در فناوری 5G آن است که شرکت‌های فعال در حوزه‌ی وایرلس، بتوانند از سرویس‌های خود درآمدزایی بهتری داشته باشند. دراقع، آن‌ها نمی‌خواهند شبیه به شرایط کنونی، به کسب‌وکارهای آنلاین وابسته باشند. برای اپراتورها و ارائه‌دهنده‌های خدمات شبکه، نقطه‌ی مثبت 5G، امکان تقسیم‌بندی شبکه است. چنین امکانی به اپراتورها امکان می‌دهد تا چندین شبکه‌ی خصوصی و شخصی‌سازی‌شده را برای مشتریان خاص یا کاربردهای متنوع بسازند. چنین رویکردی، درآمدهای بالا و مبتنی بر خدمات را به سمت آن‌ها روانه می‌کند که اکنون و با فناوری 4G قابل دستیابی نیست.

چین و آمریکا

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

هواوی از هم‌اکنون به فکر افزایش انحصار خود در این حوزه‌ است

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

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

در نتیجه‌ی فرضیه‌های بالا، چین با همکاری اپراتورهای 5G خود می‌تواند شرکت‌های آمریکایی را از دسترسی به بازارهای پرسود فوق، باز بدارد. چنین رویکردی اکنون در داخل مرزهای آن کشور پیاده می‌شود. برنامه‌ی جاده‌ی ابریشم، پیاده‌سازی آن روش‌ها را در گستره‌ی وسیعی از جغرافیا ممکن می‌کند که ۶۵ درصد از جمعیت جهان را تشکیل می‌دهد. تا آن زمان، چینی‌ها اینترنت اختصاصی بین‌المللی خود را توسعه خواهند داد که سرویس‌های با ظرفیت بسیار بالا و خارج از محدوده‌ی درک کنونی ما دارد.

5g

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

آمریکایی‌ها راه زیادی برای مقابله‌ی احتمالی با انحصار چین در پیش دارند

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

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

سرویس CDN‌ آروان جزو بهترین‌های دنیا قرار گرفت

آروان در طول سال گذشته امکانات متنوعی به محصول CDN اضافه کرده، اما پیچیده‌ترین این امکانات Dynamic Content Caching و Remote Key Offloading  است که CDN آروان را جزو دو CDN برتر دنیا قرار می‌دهد.

میگ‌میگ؛ راهکاری برای پاسخ به Dynamic Caching در CDN

آروان نام میگ‌میگ را برای سرویس Dynamic Content Caching انتخاب کرده است که منجر به بهبود سرعت Load سایت‌ها می‌شود.

صابر مسگری، کدسالار آروان درباره‌ی میگ‌میگ گفت: «با اینکه اکثر این محتوا برای بیشتر کاربران یکسان است؛ اما درخواست‌ها بدون Cacheشدن مستقیم به‌سمت سرورهای اصلی ارسال و این موضوع بار ترافیکی زیادی را برای آن‌ها ایجاد می‌کرد. ما راهکاری برای Dynamic Content Caching ارائه دادیم که به‌کمک آن می‌تونیم با Remote Differential Compression این درخواست‌ها را مدیریت کنیم و مزایای همچون: کم‌تر شدن تعداد درخواست‌های ارسالی سمت سرورهای اصلی و کاهش ترافیک سرورهای اصلی و افزایش سرعت نمایش صفحات برای بازدیدکننده سایت را ارائه می‌کند.

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

با نصب نرم‌افزار میگ‌میگ روی سرورها، دیگر صاحبان وب‌سایت‌ها نگرانی بابت ترافیک بالای سرور نخواهند داشت. در مورد سایت‌هایی که تغییرات کمی داشته باشند، این بهبود گاهی تا ۹۸درصد در حجم ترافیک می‌رسد و در مورد سایت‌هایی که محتوای آن‌ها تغییر بسیاری دارد تا بیش از ۵۰درصد بهبود ایجاد می‌شود.

OpenSesame؛ راهکاری برای Remote Key Offloading

برای مشتریان سازمانی مانند بانک‌ها امنیت اهمیت فوق‌العاده‌ای دارد و این امنیت از چند لایه تشکیل شده است. امروزه تمامی سایت‌های مهم برای حفظ امنیت مشتریان‌شان از TLS استفاده می‌کنند و یکی از نمادهای امنیت Private Key است. این مشتریان علاقه دارند برای افزایش کیفیت خدمات، همچنین مقابله با حملات DDOS از خدمات CDN استفاده کنند، اما برای‌شان مهم است Private Key دست خودشان بماند.

آروان در پاسخ به این نیاز محصولی را توسعه داده که با نام OpenSesame به مشتریان ارائه می‌شود و Private Key را نزد خود داشته باشند.

نام اپن‌سِسمی از داستان علی بابا و چهل دزد بغداد از مجموعه داستان‌های هزار و یک شب برگرفته شده است. در این داستان علی بابا با گفتن یک جمله و بدون داشتن کلید می‌تونه در غار را باز کند. «آن جمله چه بود؟ کنجد کنجد باز شو یا  OpenSesame!»

این محصول ابزاری برای Remote Private Key Offloading است و مشتریان آروان می‌توانند به‌کمک آن از تمامی امکانات سرویس‌های CDN و امنیت ابری آروان استفاده کنند، بدون آن‌که کلید خصوصی‌شان را در اختیار آروان قرار دهند. به‌علاوه، وب‌سایت این مشتریان به‌کمک آروان شتابدهی می‌شود و از گواهی‌نامه‌ی معتبر SSL خود مشتریان استفاده می‌شود.

امنیت کامل بانکی با CDN بانکی آروان و داتین

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

سروش نیک‌پور، کارشناس ارشد امنیت داتین در رویداد سوار ابرها به معرفی راهکارهای آروان و داتین پرداخت و گفت: «CDN بانکی آروان و داتین محصولی است که با نگاهی دقیق به قوانین بانکداری و الزامات نظارتی مانند الزامات شاپرک بهینه شده است. در این محصول لایه‌های IDS/IPS و سیستم WAF  را براساس مدل خاص ترافیک بانکی و تراکنش‌هاش بازنویسی کردیم تا بتونه خیلی بهتر ترافیک بد را از ترافیک سالم تشخیص بدهد و بدون اینکه مشتری بانک متوجه شود، جلوی ترافیک بد را بگیرد. سرورها را به‌شکل کلی با قدرتمندترین الگوریتم‌ها رمزگذاری کردیم تا حتی اگر سروری را خاموش کنند و به‌شکل فیزیکی بدزدند به هیچ اطلاعاتی، دسترسی نخواهند داشت.»

از جمله قابلیت‌های محصولی که مشتریان بانکی می‌توانند برای امنیت بیشتر از آن بهره‌مند شوند، می‌توان به فهرست زیر اشاره کرد:‌

  • OpenSesame آروان یا CDN بدون کلید که به‌کمک آن بانک‌ها می‌توانند کلید خصوصی‌شان را نزد خود نگه‌دارند.
  • تونل خصوصی و امن بانکی که ترافیک بانک‌ها و کاربران‌شان را از بستری امن، دست‌نخورده و بدون بازکردن رمزنگاری ترافیک عبور می‌دهد و به سرورهای اصلی بانک‌ها می‌رساند و درکنار استفاده از امکان دفع حملات DDoS، امنیت شبکه‌ی بانک‌ها را نیز تأمین می‌کند.

بهینه سازی سایت برای گوگل (سئو)

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

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

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

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

پیشنهاد می کنم این ای بوک را حتما بخوانید : 20 نکته ارزشمند در سئو سایت

 

استفاده از خبرنامه ایمیلی
یکی از بهترین انحاء برای افزایش بازدید سایت ارسال ایمیل های خبرنامه به اعضای سایت است. صحیح است که در این طریق بازدید کننده جدید وارد سایت نمی شود اما بازدید کننده هایی که وارد سایت می شوند مسلما مایه افزایش بازدید یومیه سایت می شوند. به عنوان نمونه اگر بازدید روزانه سایت شما 1000 آی پی است در سررسید هایی که ایمیل های خبرنامه به اعضای سایت خویش ارسال می کنید ممکن است 300 لغایت 500 آی پی دیگر علاوه بر بازدید معمول روزانه خود گرفتن کنید.

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

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

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

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

راستی بازدیدکنندگان بازگشتی به سایت باعث درمان رتبه الکسا هم می شوند.

جاوا اسکریپت به زبان ساده - جلسه هجدهم - استرینگ‌ها (پیشرفته)

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

پیدا کردن مکان یک کلمه در یک جمله:

فرض کنید که در یک متن، دنبال لغت خاصی هستید و می‌خواهید اولین جایی که این لغت ظاهر شده است را ببینید. برای این کار یک متد بسیار ساده به نام indexOf() وجود دارد.

تنها کافی است تا بعد از متغیر استرینگ این متد را به کار ببرید.

در مثال زیر ابتدا متن خود را در متغیر str ذخیره کرده‌ایم و سپس با متد indexOf شماره و شماره‌ای که این لغت در آن ذخیره شده است را پیدا کرده‌ایم.

var str = "Please locate where 'locate' occurs!";

var pos = str.indexOf(“locate");

اگر بخواهیم آخرین نقطه‌ای که این کلمه استفاده شده است را پیدا کنیم نیز از متد lastIndexOf(“locate"); استفاده می‌کنیم.

در صورتی که متن مورد نظرمان پیدا نشود، عدد -۱ به عنوان پاسخ بازگردانده خواهد شد.

دقت کنید که خروجی متد indexOf عدد است! مثلا در این متد، عدد ۷ به عنوان خروجی بازگردانده خواهد شد. یعنی هفتمین کلمه (با احتساب اسپیس‌ها) بازگردانده خواهد شد.

جدا کردن یک تکه از متن:

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

slice(start, end)

substring(start, end)

substr(start, length)

در متد slice نقطه شروع کلمه را به عنوان پارامتر اول و نقطه پایان کلمه را به عنوان پارامتر دوم می‌نویسیم.

برای مثال فرض کنید که یک جمله استرینگی به صورت متغیر str داریم. حالا می‌خواهیم کلمه Banana را از این استرینگ جدا کنیم. برای این کار می‌توانیم از متد slice استفاده کنیم. این متد همانطور که گفتیم محل اولین کلمه و آخرین کلمه را می‌گیرد و هر چه در بین این دو عدد وجود دارد را به ما خروجی می‌دهد.

var str = "Apple, Banana, Kiwi";

var res = str.slice(713);

مثلا اگر شروع حرف ما در جمله بالا B باشد،‌کلمه B به عنوان ششمین کلمه (با احتساب صفر) در این استرینگ است. حرف آخر کلمه مورد نظر ما نیز a است که حرف یازدهم از کل استرینگ محسوب می‌شود. پس متغیر اول شش و متغیر دوم ۱۲ است! حالا این دو متغیر را در متد اسلایس می‌نویسیم و در خروجی متن مورد نظرمان را دریافت می‌کنیم!

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

var str = "Apple, Banana, Kiwi";

var res = str.slice(-12-6);

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

var str = "hello, mohammad hossein";

var finalResponse = str.slice(7);

alert(finalResponse) // خروجی تمامی کلمات داخل استرینگ بعد از  hello خواهد بود

متد substring() 

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

متد ()substr

این متد هم مانند متدهای قبلی عمل می‌کند! منتها پارامتر دومی که می‌گیرد عدد و مکان آخرین لغت مورد نظر نیست بلکه تعداد کلماتی است که بعد از پارامتر اول شمرده می‌شود! 

var str = "Apple, Banana, Kiwi";

var res = str.substr(76);

خروجی باز هم کلمه Banana خواهد بود که در واقع ۶ کلمه بعد از شروع جستجو (کلمه شماره هفتم یعنی کلمه b در لغت banana) است. 

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

جایگزین کردن یک کلمه یا متن در استرینگ؛

اگر بخواهید بخشی از یک متن را عوض کنید و متن دیگری بنویسید متد replace کارگشای شما است.

str = "Please visit Microsoft!";

var replacedSentese = str.replace("Microsoft", "W3Schools");

در این متد، پارامتر اول چیزی است که می‌خواهیم عوض شود و پارامتر دوم چیزی است که می‌خواهیم جایگزین پارامتر اول شود! به همین سادگی!

تبدیل همه متن به حروف بزرگ یا حروف کوچک:

یک متد دیگر متن‌ها در جاوا اسکریپت، تبدیل تمامی حروف به حروف بزرگ یا برعکس است! متد انجام این کار نیز به سادگی انجام می‌شود؛ تنها کافی است بعد از متغیر حاوی متن دستور نقطه toLowerCase() برای تبدیل همه حروف به حروف کوچک یا  toUpperCase() برای تبدیل همه حروف به حرف بزرگ استفاده کنید.

var text1 = "Hello World!"      // String

var text2 = text1.toUpperCase();  // text2 is text1 converted to upper

var text1 = "Hello World!"      // String

var text2 = text1.toLowerCase();  // text2 is text1 converted to lower

متد()concat

متد concat() برای چسباندن دو متن جدا از هم به یکدیگر استفاده می‌شود. برای استفاده از این متد باید دو استرینگ مجزا داشته باشیم. مثلا فرض کنیم دو استرینگ به صورت زیر داریم:

var name = "mohammad hosssein ";

var family = "malek!";

var nameAndFamily = name.concat(family);

در این متد، استرینگ نوشته شده به عنوان پارامتر concat (یعنی family) به انتهای استرینگی که متد concat را روی آن فراخوانی کرده‌ایم (یعنی name) می‌چسبد.

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

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

نحوه قرار دادن کامنت در جاوا اسکریپت: 

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

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

مثال:

کامنت یک خطی با کمک */

/* this block is commented and won't do anything */

کامنت چند خطی با کمک */

/* این بلاک کد کامنت شده است

و هیچ گونه اتفاقی

در این قسمت رخ نخواهد داد */

کامنت یک خطی با کمک //

//کامنت در یک خط

کامنت چند خطی با کمک //

//مجموعه ای از 

//کامنت‌های

//یک خطی

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

تعریف بلاک کد:

بلاک کد در واقع مجموعه‌ای از جملات یک زبان برنامه‌نویسی است که در کنار هم، یک بلاک یا مجموعه را تشکیل می‌دهند. مثلا فانکشن‌ها و کارهایی که در داخل {} یک فانکشن نوشته می‌شود یک بلاک کد را تشکیل می‌دهند. 

{

StatementList

}

در مثال بالا هر چه بین دو علامت { نوشته شده است به‌عنوان بلاک کد شناخته می‌شود.

مفهوم بلاک در جاوا اسکریپت

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

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

اهمیت بلاک در تعریف متغیرها:

متغیرها در جاوا اسکریپت به دو دسته تقسیم می‌شوند: متغیرهای عمومی و Global. در واقع زمانی که یک متغیر را درون یک فانکشن تعریف می‌کنید، تفاوت بسیار زیادی دارد تا آن را بیرون یک فانکشن تعریف کنید. 

متغیرهای عمومی:

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

متغیرهای محلی:

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

var globalVariable;

function changeMe(){

     var localVaribale = "i am local to this function";

      globalVariable = "i am global varibable"

اگر localVaribale را در داخل فانکشن صدا بزنیم بدان دسترسی خواهیم داشت چون این متغیر تنها وابسته و قابل استفاده در همین فانکشن خواهد بود//

}

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

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

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

alert(globalVariable) //نتیجه درست برخواهد گشت

alert(localVaribale) // این متغیر ناشناخته خواهد بود 

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

چه موقع از متغیرهای محلی استفاده می‌کنیم؟ 

فرض کنید که ۱۰ فانکشن دارید که در هر کدام از آن‌ها به یک متغیر جداگانه نیاز دارید که مثلا قیمت نهایی را حساب کند! اگر تمام متغیرهای قیمت نهایی را بخواهید گلوبال تعریف کنید، باید به تعداد فانکشن‌ها متغیرهای گلوبال تعریف کنید. همچنین هر بار که فانکشن صدا زده می‌شود، مقدار متغیر گلوبال شما با مقدار جدید عوض می‌شود. اما اگر متغیر شما به‌صورت محلی در داخل فانکشن تعریف شود، فقط در همان فانکشن در دسترس خواهد بود و دیگر ناچار نیستید متغیرهای جداگانه برای هر فانکشن تعریف شود. همچنین از عدم تداخل متغیرها و قاطی شدن مقدارها در فانکشن‌های مختلف نیز خیالتان راحت خواهد بود.