با بزانین چی تایبەتیکی هەیە جاڤاسکڕێپت، دەتوانین چی بەدەست بهێنین لەگەڵیدا، و چ تەکنەلۆژیایەکی دیکە بە باشی کار دەکەن لەگەڵی.
جاڤاسکڕێپت لە سەرەتادا بۆ "بە زیندوویکردنی لاپەڕەکانی وێب" دروستکرا.
کۆدەکانی ئەم زمانە پێیان دەوترێت scripts. دەتوانرێت لە HTML ی پەڕەیکی وێب بنووسرێن و بە بارکردنی لاپەڕەکە بە شێوەیەکی ئۆتۆماتیکی کاربکەن. سکریپتەکان وەک دەقی سادە دابین دەکرێن و جێبەجێ دەکرێن.
پێویستیان بە ئامادەکاری تایبەت یان کۆکردنەوە نییە بۆ ئەوەی کاربکەن.
لەم لایەنەدا جاڤاسکڕێپت زۆر جیاوازە لە زمانێکی تر بە ناوی جاڤا
کاتێک جاڤاسکڕێپت دروستکرا، سەرەتا ناوێکی دیکەی هەبوو: "Livescript".بەڵام جاڤا لەو کاتەدا زۆر بەناوبانگ بوو، بۆیە بڕیاردرا کە ناوی بێتە جاڤاسکڕێپت وە وەک برای بووچک جاڤا پێناسە بکرێت وە بە هۆی ئەم ناوە بتوانێ گەشە وە پەرەبسێنێت.
بەڵام لەگەڵ پەرەسەندندا، جاڤاسکڕێپت بوو بە زمانێکی تەواو سەربەخۆ کە تایبەتمەندی خۆی هەبوو و بوو بە [ئێکماسکڕێپت](https://en.wikipedia.org/wiki/ECMAScript)،وە ئێستا بە هیچ شێوەیەک پەیوەندی بە جاڤاوە نییە.
ئەمڕۆ، جاڤاسکڕێپت دەتوانێت نەک تەنها لە وێبگەڕەکەدا کار بکات، بەڵکو لەسەر سێرڤەر، یان لە ڕاستیدا لەسەر هەر ئامێرێک کە بەرنامەیەکی تایبەتی هەبێت بە ناوی JavaScript engine. دەتوانێ کار بکات.
وێبگەڕەکە بزوێنەرێکی جێگیرکراوی هەیە، هەندێک جار پێی دەوترێت "ئامێری مەجازی جاڤاسکڕێپت".
بزوێنەرە جیاوازەکان "کۆدناوی(codenames)" جیاوازیان هەیە. بۆ نموونە:
-
ڤی ٨ -- لە کرۆم و ئۆپێرا و ئێدج.
-
ئێسپایدرمانکی -- لە فایرفاکس.
-
کۆدناوی دیکەش هەن وەک "چاکرا" بۆ IE ، "جاڤاسکڕێپت کۆر"، "نیترۆ" و "SquirreLish" بۆ سەفاری و هتد.
-
باشە ئەو کۆدناوەکانی سەرەوە لەبیرمان بمێنێ چونکە لە بابەتەکانی گەشەپێدەران لە ئینتەرنێتدا بەکاردێت.ئێمەش بەکاریان دەهێنین. بۆ نموونە,ئەگەر "تایبەتمەندییەک X لەلایەن V8 پشتگیری بکرێت" ، پاشان ئەگەری زۆرە لە کرۆم و ئۆپێرا و ئێدجدا کار بکات
بزوێنەرەکان ئاڵۆزن. بەڵام بنەماکان ئاسانن.
1. بزوێنەرەکە (ئەگەر وێبگەڕێک بێت بزوێنەرەکە لە نێوخۆی جێگیربووە) سکریپتەکە دەخوێنێتەوە ("وە شیکاری دەکات").
2. پاشان سکریپتەکە دەگۆڕێت بۆ کۆدی ماشین ("کامپایڵکردن").
3. و پاشان کۆدی ماشین زۆر بە خێرایی دەست بە کارکردن دەکات.
بزوێنەرەکە لە هەر هەنگاوێکدا هەوڵ ئەدات پرۆسەکە باشتر و خێراتر بکات. تەنانەت کاتێ کە ئێسکرێپتەکە کامپایڵ بووە بزوێنەرەکە کارکردنی ئێسکڕێپتەکە ئەگرێتە ژێرچاودێری ، ئەو زانیاریانە کە لە ڕێگای ئێسکڕێپت ئێمە تێن وە ئەچنیش شی دەکاتەوە ، وە بەپێی ئەم زانیاریەنە کە لە ڕێگای چاودێریکردن وە شی کردنەوەی دیتاکانی هات و چوو کراوەی ئێسکرێپتەکە کۆیکردەسەو کۆدی ماشینەکە باشتر و گونجاوتر دەکات بەپشتبەستن بە زانیاریەکانی خۆی کە بە دەستی هێناوە.
جاڤاسکڕێپتی مۆدێرن زمانێکی بەرنامەسازی "ئەمنە". مۆڵەتی دەستگەیشتن بە ئاستی نزم بۆ بیرگە یان CPU نادات چونکە لە سەرەتادا بۆ ئەو وێبگەڕانە دروستکراوە کە پێویستیان پێی نییە.
تواناکانی جاڤاسکڕێپت تا ڕادەیەکی زۆر پشت بەو ژینگەیە دەبەستێت کە تێیدا کاردەکات.Node.js پشتگیری لەو فانکشنەنە دەکات کە ڕێگە بە جاڤاسکڕێپت دەدەن فایلە دڵخوازەکان بخوێنێتەوە/بینووسێت، داواکاری تۆڕەکان دروست بکات و هتد.
جاڤاسکڕێپت لە وێبگەڕەکەدا دەتوانێت هەموو ئەرکەکانی دەستکاریکردنی لاپەڕەکانی وێب، وەڵام دانەوەی داواکاریەکانی بەکارهێنەر و سێرڤەری وێب ئەنجام بدات.
بۆ نموونە جاڤاسکڕێپت لەناو وێبگەڕەکەدا توانای هەیە:
-
ئێچ تی ئێم ئێڵ یان HTML ی نوێ زیاد بکە بۆ لاپەڕەکە، ناوەڕۆکەکان وە ستایلەکان بگۆڕێت.
-
کاردانەوە بەرامبەر بە کردارەکانی بەکارهێنەر بێت، کرتە لە ماوس کردن، جوڵانەوەی ماوس، فشار دان دوکمەکانی کیبۆرد، بۆ هەموو ئەمانە دەتوانن کاردانەوەیکی تایبەت ئامادە وە جێبەجێکەن.
-
ناردنی داواکاری لە ڕێگەی تۆڕەوە بۆ سێرڤەرە دوورەکان، دانلود و ئاپلۆد فایلەکان (کە پێی دەوترێت AJAX. و تەکنەلۆژیای COMET
-
کووکی وەرگرتن و ڕێکخستن و سڕینەوەی، پرسیار لە سەردانکەرەکانی ماڵپەڕەکە بکات، نامەکان پیشان بدە.
-
داتاکانی لایەنی کلاینت ("Local Storage") پاشەکەوت بکە.
تواناکانی جاڤاسکڕێپت لە وێبگەڕەکاندا سنووردارە بۆ پاراستنی بەکارهێنەر. ئامانج لێی ڕێگریکردنە لە دەستگەیشتن بە زانیارییە تایبەتەکان یان زیانگەیاندن بە زانیارییەکانی بەکارهێنەر.
نموونەی ئەم سنووردارکردنانە بریتین لە:
- جاڤاسکڕێپت لە وێب پەڕێکدا لەوانەیە فایلە ئارەزوومەندانە لەسەر هارد دیسکەکە بخوێنێتەوە/بنووسێت، کۆپییان بکات، یان بەرنامەکان ئێجرابکات. دەستڕاگەیشتنێکی ڕاستەوخۆی بە زۆر شتی گرنگی سیستەمی کارپێکردن نییە.
<<<<<<< HEAD
وێبگەڕە مۆدێرنەکان ڕێگەی پێدەدەن کار لەگەڵ فایلەکاندا بکات، بەڵام دەستڕاگەیشتن سنووردارە و تەنها لەو کاتەدا دابین دەکرێت کە بەکارهێنەر هەندێک کردار ئەنجام بدات، وەک "خستنەناو" فایلێک بۆ ناو پەنجەرەی وێبگەڕەکە یان هەڵبژاردنی لە ڕێگەی تاگی <input> .
ڕێگا هەیە بۆ کارلێککردن لەگەڵ کامێرا/مایکرۆفۆن و ئامێرەکانی تر، بەڵام پێویستیان بە مۆڵەتی بەکارهێنەری ڕوون هەیە. کەواتە لاپەڕەیەک کە جاڤاسکڕێپتی هەبێت ڕەنگە بە نهێنی کامێرای وێب چالاک نەکات و دەوروبەرەکەی نەبینێت و زانیاری بۆ [NSA](https://ckb.wikipedia.org/wiki/%D8%AF%DB%95%D8%B2%DA%AF%D8%A7%DB%8C_%D8%A6%D8%A7%D8%B3%D8%A7%DB%8C%D8%B4%DB%8C_%D9%86%DB%95%D8%AA%DB%95%D9%88%DB%95%DB%8C%DB%8C) نەنێرێت.
-
تاب/پەنجەرە جیاوازەکان بەزۆری ئاگاداری یەکتر نین. هەندێک جار ئاگادار یەک ئەوەن، بۆ نموونە کاتێک پەنجەرەیەک جاڤاسکڕێپت بەکاردەهێنێت بۆ کردنەوەی پەنجەرەیەکی تر. بەڵام تەنانەت لەم حاڵەتەشدا، جاڤاسکڕێپت لە لاپەڕەیەکەوە ڕەنگە نەتوانێت دەستی بگات بە لاپەڕەیەکی تر ئەگەر لە سایتی جیاوازەوە بێت (لە دۆمەین، پرۆتۆکۆڵ، یان دەروازەیەکی جیاوازەوە).
ئەمەش پێی دەوترێت "Same Origin Policy".بۆ چارەسەرکردنی، هەردوو لاپەڕەکە دەبێت ڕازی بن لەسەر ئاڵوگۆڕی داتا، و دەبێت کۆدی تایبەتی جاڤاسکڕێپتیان تێدابێت کە مامەڵە لەگەڵ پەنجەرەکان یا تابەکان بکات. لە داهاتوو زۆرتر لەسەر ئەم بابەتە قسە دەکەین وە فێرکاریمان بۆی هەیە.
ئەم سنووردارکردنە دیسانەوە بۆ پاراستنی بەکارهێنەرە. لاپەڕەیەک لە
http://anysite.comکە بەکارهێنەر کردوویەتیەوە نابێت بۆ نموونە بچێتە ناو تابێکی تری وێبگەڕ بە ئادرسیhttp://gmail.comو لەوێوە زانیاری بدزێت. -
جاڤاسکڕێپت دەتوانێت بە ئاسانی لە ڕێگەی تۆڕەوە پەیوەندی لەگەڵ ئەو سێرڤەرە بکات کە لاپەڕەی ئێستا لێیەوە هاتووە.بەڵام توانای وەرگرتنی زانیاری لە سایت/دۆمەینەکانی ترەوە پەککەوتووە.هەرچەندە دەکرێت، بەڵام پێویستی بە ڕێککەوتنی ڕوون هەیە (بە سەردێڕی HTTP ) لە لایەنی دوورەوە. جارێکی تریش ئەمە سنووردارکردنی ئەمنە بۆ بەکارهێنەرەکان. ======= This limitation is, again, for the user's safety. A page from
http://anysite.comwhich a user has opened must not be able to access another browser tab with the URLhttp://gmail.com, for example, and steal information from there. -
JavaScript can easily communicate over the net to the server where the current page came from. But its ability to receive data from other sites/domains is severely limited. Though possible, it requires explicit agreement (expressed in HTTP headers) from the remote side. Once again, that's a safety limitation.
52c1e61915bc8970a950a3f59bd845827e49b4bf
ئەگەر جاڤاسکڕێپت لە دەرەوەی وێبگەڕ بەکاربهێنرێت، بۆ نموونە لەسەر سێرڤەر، هیچ سنووردارکردنێکی لەو جۆرە نییە.هەروەها وێبگەڕە مۆدێرنەکان ڕێگە بە plugins/extensions دەدەن کە ڕەنگە داوای مۆڵەتی درێژتر وە سەختر بکەن.
بەلایەنی کەمەوە سێ شتی نایاب لە جاڤاسکڕێپتدا هەیە:
+ تەوانایی یەکخستنی خۆی لەگەڵ لەگەڵ HTML/CSS ىە هەیە بە شێوازێ کە بێ جاڤاسکرێپت درووسکردن ماڵپەڕ وەک خەیاڵە.
+ ئەرکە سادەکان بە ئاسانی ئەنجام دەدرێن.
+ لەلایەن هەموو وێبگەڕە سەرەکییەکانەوە پشتگیری دەکرێت و بە شێوازی پێشوەختە چالاک کراوە.
جاڤاسکڕێپت تاکە تەکنەلۆژیای وێبگەڕە کە هەر سێ لە ئەو تایبەتمەندیەنە کۆدەکاتەوە و پشتگیری لێدەکات.
ئەمەش وایکردووە جاڤاسکڕێپت تایبەت بێت. هەر بۆیە بەرفراوانترین ئامرازە بۆ دروستکردنی ڕووکاری وێبگەڕ.
کە ووتمان دەتوانرێت جاڤاسکڕێپت بەکاربهێنرێت بۆ دروستکردنی سێرڤەر و بەرنامەی مۆبایل و زۆر شتی تر.
سینتێکس جاڤاسکڕێپت لەگەڵ پێداویستی هەموو کەسێکدا ناگونجێت.کەسانی جیاواز تایبەتمەندی جیاوازیان دەوێت.
ئەمەش جێگەی چاوەڕوانییە، بەو پێیەی پڕۆژە و پێداویستییەکانی هەمووان جیاوازن.
بۆیە لەم دواییانەدا زۆر زمانی نوێ دەرکەوتوون کە پێش ئەوەی لە وێبگەڕەکەدا کاربکەن transpiled (دەگۆڕن) بۆ جاڤاسکڕێپت.
ئامرازە مۆدێرنەکان وەرگێڕان زۆر خێرا و شەفاف دەکەن، لە ڕاستیدا ڕێگە بە گەشەپێدەران دەدەن بە زمانێکی تر کۆد بکەن و بە شێوەیەکی ئۆتۆماتیکی بیگۆڕن "under the hood".
نموونەی ئەم جۆرە زمانانە:
- کافی ئێسکڕێپت "syntactic sugar"ىە بۆ جاڤاسکڕێپت. سینتێکسێ کورتتر دەناسێنێت و ڕێگەمان پێدەدات کۆدی ڕوونتر و وردتر بنووسین. بەزۆری گەشەپێدەرانی Ruby حەزیان لێیە.
- تایپ ئێسکرێپت سەرنجی لەسەر زیادکردنی "تایپکردنی داتایەکی ورد"ىە بۆ ئاسانکردنی پەرەپێدان و پشتگیریکردن لە پرۆژە ئالۆزەکانە.لەلایەن کۆمپانیای مایکرۆسۆفتەوە پەرەی پێدراوە.
- فلۆ هەروەها Flow تایپی داتا زیاد دەکات، بەڵام بە شێوەیەکی جیاواز. پەرەی پێدراوە لەلایەن فەیسبووک.
- دارت زمانێکی سەربەخۆیە و بزوێنەری تایبەتی خۆی هەیە کە لە ژینگەی نا وێبگەڕدا کاردەکات (وەک ئەپی مۆبایل)، بەڵام دەتوانرێت بگوازرێتەوە بۆ جاڤاسکڕێپت.لەلایەن گووگڵەوە پەرەی پێدراوە.
- برایتون پۆرتێرێکی پایتۆن بۆ جاڤاسکڕێپتە کە ڕێگە دەدات بەرنامەکان بە پایتۆنێکی پاک و خاڵی بەبێ جاڤاسکڕێپت بنووسرێن.
- کاتلین زمانێکی بەرنامەسازی مۆدێرن و پوخت و ئەمنە کە دەتوانێت وێبگەڕ یان Node بکاتە ئامانج وە لەگەڵیان کار بکات.
زیاتر لەوێیە. بێگومان تەنانەت ئەگەر یەکێک لەم زمانە وەرگێڕدراوانەش بەکاربهێنین، پێویستە جاڤاسکڕێپت بزانین بۆ ئەوەی بەڕاستی تێبگەین کە چی دەکەین.
- جاڤاسکڕێپت لە سەرەتادا وەک زمانێکی تەنها وێبگەڕ دروستکرابوو، بەڵام ئێستا لە زۆر ژینگەی دیکەدا بەکاردەهێنرێت.
- ئەمڕۆ جاڤاسکڕێپت پێگەیەکی ناوازەی هەیە وەک بەکارهێنانی بەربڵاوترین زمانی وێبگەڕ کە بە تەواوی لەگەڵ HTML/CSS یەکگرتووە وە بە ئاسانی دەتوانێ کارەکانمان جێبەجێبکات.
- زۆر زمان هەن کە "transpiled" دەکرێن بۆ ناو جاڤاسکڕێپت و تایبەتمەندی بەهێزیان هەیە. پێشنیار دەکرێت کە لانیکەم بۆ ماوەیەکی کورت سەیریان بکەیت و پرۆژەیان پێ درووست بکەیت بەڵام گرنگ ئەوەیە بۆ سەرەتا لە جاڤاسکڕێپت شارەزا بیت جا هەوڵ بۆ فێربوونی زمانەنێ تر بەیت.