بۆ ناوەڕۆک بازبدە

جاڤاسکریپت

لە ئینسایکڵۆپیدیای ئازادی ویکیپیدیاوە
(لە JavaScriptەوە ڕەوانە کراوە)
جاڤاسکریپت
پارادایمفرەپارادایم: تەنخواز (لەسەر بنچینەی پرۆتۆتایپ), فرمانی، فەنکشنەڵ, بەڕووداو پاڵنراو[١]
داڕێژەربراندن ئایک
پەرەپێدەرکۆمپانیای گەیاندنی نێتسکەیپ، دامەزراوەی مۆزیلا، ئێکمە ئینتەرناشناڵ
یەکەم دەرکەوتن٤ی کانوونی یەکەمی ١٩٩٥؛ ٢٨ ساڵ لەمەوبەر (١٩٩٥-١٢-٠٤)[٢]
وەشانی جێگیر
ECMAScript 2017[٣] / حوزەیرانی ٢٠١٧؛ ٧ ساڵ لەمەوپێش (٢٠١٧-٠٦)
جۆری دراو (تایپ)بزۆک، قاز
پاشگری پەڕگە
وێبگەMozilla
Major implementations
V8, JavaScriptCore, ڕاینۆ, سپایدەر مەنکی، Chakra
کاریگەربووە بە
لوا، سکیم، پێرڵ, سێڵف، جاڤا، سی، پایتن، AWK, ھایپەرتۆک
کاری کردۆتە
ئاکشنسکریپت، ئاتسکریپت، کۆفیسکریپت، دارت، جەی سکریپت دۆت نێت، لایڤسکریپت، ئۆبجێکتڤ جەی، ئۆپا، پێرڵی ٦, QML, تایپسکریپت

جاڤاسکریپت (بە ئینگلیزی: JavaScript) زۆرجار لە ئینگلیزیدا کورت دەکرێتەوە بۆ JS - جەی ئێس، بریتییە لە زمانێکی بەرنامەسازیی ئاستبەرز، فەنکشناڵ و وەرگێڕدراو. تایبەتمەندێتییەکانی ئەم زمانە ئەوەیە کە جوڵاوە، جۆری دراوی بێھێزە (واتە دەتوانی دراوێک بناسێنی بە ژمارە بەڵام بە ئاسانی 'ھێزی' لێ بکەی ببێتە 'نووسە')، پشت بە پرۆتۆتایب دەبەستێ (لە ئۆ ئۆ دا) و فرەپارادایمە (فرە شێوازی داڕشتنە). جاڤاسکریپت بریتییە لە یەکێک لە سێ پێکھێنەری سەرەکی تۆڕی جیھانی ئینتەرنێت، (CSS, HTML)دوانەکەی ترن.[٥] جاڤاسکریپت لە بنەمادا زمانی بەرنامەسازییە لەسەر وێبگەڕ، بەڵام بە دروستکردنی نۆد.جەی ئێس دەکرێت لەسەر ڕاژەکار و سیستمەکانی کارگێڕی وەگەڕخرێت.

وەک ھەر زمانێکی فرە پارادایم، جاڤاسکریپت پاڵپشتی دەکات لە بەرنامەسازیی فرمانی (لەنێویاندا تەنخواز و لەسەر بنچینەی پرۆتۆتایپفەنکشنەڵ، بەڕووداو پاڵنراو. جاڤاسکریپت خاوەنی ناوبەستی بەرنامەسازیی بەرنامەی بەکاربەرییەکی تایبەتە بۆ کارکردن لەگەڵ دەق، ڕیز، ڕێگولەر ئیکسپرێشن، و ھەروەھا قۆزتنەوەیەکی سەرەتایی دۆم بەڵام زمانەکە لەخۆیدا ھیچ تێکردن/دەرخستەیەکی وەکوو ڕایەڵە، کۆگا، کەرەستەکانی گرافیک لەخۆ ناگرێت بەڵکو پشت بەستوو بە ژینگەی ئەو خانەخوێیەی کە لەخۆی دەگرێت.

ئەگەرچی لەسەرەتاوە جاڤاسکریپت بەتەنھا جێبەجێ کردنی لایەنی ڕاژەخوازی لەسەر وێبگەڕ ھەبوو، بەڵام لەئێستادا تێکەڵ کراوە لەگەڵ گەلێک جۆری جیاواز لە خانەخوێی نەرمامێر، لەنێویشیاندا لایەنی ڕاژەکار لەسەر ڕاژەکاری وێب و بنکەی دراوە، ھەروەھا لە بەرنامەکانی دیکەدا کە بەرنامەی وێب نین، لەوانە بەرنامەکانی چارەسەرکردنی وشە و PDF، ئەمە جگە لە بەکارھێنانی لە ژینگەکانی runtime دا کە ڕێگە دەدەن بە نووسینی بەرنامە بۆ مۆبایل و دێسکتۆپ.

ھەرچەندە لێکچوونی ڕواڵەتیی بەھێز ھەیە لە نێوان جاڤاسکریپت و جاڤادا، لەنێویاندا ناو زمانەکە، سینتاکس، و گورزە ستانداردەکان، کەچی ئەو دوو زمانە لە ناوەڕۆکدە بەتەواوەتی لەیەک جیاوازن بەتایبەتی لەڕووی دیزاینەوە؛ جاڤاسکریپت کاریگەر بووە بە زمانەکانی وەک سێڵف و سکیم.[٦]

مێژوو

[دەستکاری]

سەرەتاکان لە نێتسکەیپ

[دەستکاری]

لە ١٩٩٣ دا، سەنتەری نیشتمانی بۆ سوپەرکمپیوتینگ ئاپڵیکەیشنز (NCSA)، کە یەکەیەک بوو لە زانکۆی ئیلینۆی لە ئێربانا–شەمپەین، بەرنامەی NCSA Mosaicی دەرکرد کە یەکەم وێبگەڕی بەربڵاوی نیگارەیی بوو کە ڕۆلێکی گرنگی ھەبوو لە گەشەپێدانی بەربڵاوی تەونی بەربڵاوی جیھانیدا. لە ١٩٩٤ دا، کۆمپانیایەکە بەناوی مۆزایک کۆمینویکەشنز دامەزرا لە ماونت ڤیو، کالیفۆرنیا کە زۆرینەی نووسەرەکانی NCSA Mosaic بەکرێ گرتەوە بۆ دروستکردنی مۆزایک نێتسکەیپ. بەڵام بەقەستی ھیچ کۆدێکیان لەگەڵ NCSA Mosaic دا ھاوبەشی نەدەکرد. ناوی ناوخۆیی بۆ وێبگەڕی کۆمپانیاکە "مۆزیلا" بوو، کە کورتکراوەی "Mosaic killer" بوو ئەمەش لەبەرئەوەی ئامانجی کۆمپانیاکە ئەوە بوو کە NCSA Mosaic وەک وێبگەڕی ژمارەیەکی جیھان بھێننە خوارەوە. یەکەم وەشانی وێبگەرەکە، مۆزایک نێتسکەیپ ٠٫٩، لە کۆتایی ١٩٩٤ دا بڵاوکرایەوە. لەماوەی ٤ مانگدا توانی سێ چارەکی بازاڕی وێبگەڕ بۆخۆی داگیر بکات و بەوەش بووە وێبگەڕی سەرەکی ٩٠ەکان. لەپێناو خۆپاراستن لە کێشەی خاوەندارێتی ترەیدمارک لەگەڵ NCSA، وێبگەڕەکە ناوەکەی گۆڕدرا بۆ Netscape Navigator لەھەمان ساڵدا و کۆمپانیاکەش ناوی گۆڕدرا بۆ Netscape Communications. کۆمپانیاکە دەیزانی کە وێب پێویستی بەوە ھەیە کە لەوە زیاتر بزۆک بێت. مارک ئاندریسن، کە دامەزرێنەری کۆمپانیاکە بوو، باوەڕی وابوو کە HTML پێویستی بە زمانێک ھەیە کە چەسپی بکات و گرێ بدات بەیەکەوە بەڵام بەمەرجێک کە ئاسان بێت لەڕووی بەکارھێنانەوە بۆ دیزاینەرەکان و بەرنامەسازەکان.

لە ١٩٩٥دا، نێتسکەیپ براندن ئایکی دامەزراند بەو ئامانجەوە کە زمانی سکیم تێکەڵ بکات لەگەڵ نێتسکەیپ ناڤیگەیتەر.[٧] بەر لەوەی دەست بەکار ببێت، نێتسکەیپ کۆمیونیکەیشنز ھەماھەنگی دەست پێ کرد لەگەل سەن مایکرۆسیستەمز تاوەکو زمانی جاڤای مایکرۆسیستەمز تێکەڵ بە نێتسکەیپ ناڤیگەیتەر بکات، ئەمەش لەپێناو کێبڕکێ کردن لەگەڵ مایکرۆسۆفت بۆ لەخۆگرتنی تەکنەلۆجیای وێب لەلایەن بەکارھێنەرەوە.[٨] نێتسکەیپ کۆمیونیکەیشنز دوتر بڕیاری دا کە ئەو زمانی سکریپتسازییەی کە دەیانەوێت دروستی بکەن پێویستە تەواوکەری جاڤا بێت و لەڕووی سینتاکسەوە لەیەک نزیک بن، ئەمەش وای کرد کە لەخۆ گرتی زمانەکانی وەک پێڕڵ و پایتن و تیکڵ و سکیم بخرێتە لاوە. بۆ بەرگریکردن لە بیرۆکەی جاڤاسکریپت لەدژی پێشنیارە کێبڕکێکارەکان، کۆمپانیاکە پێویستی بەنموونەیەکی سەرەتایی ھەبوو. ئایک نموونەیەکی سەرەتایی لە ماوەی ١٠ ڕۆژدا ئامادەکرد، لە مایسی ١٩٩٥ دا.

ئەگەرچی زمانەکە لەژێر ناوی مۆکا (Mocha) دا پەرەی پێ دەدرا، دواتر بەفەرمی ناوەکەی گۆڕدرا بۆ لایڤسکریپت (LiveScript) لەپاش ئەوەی کە بارکرا بۆ وەشانی بێتای نێتسکەیپ ناڤیگەیتەر ٢٫٠ لە ئەیلوولی ١٩٩٥ دا بەڵام دوایی ناونرا جاڤاسکریپت پاش بارکردن بۆ وەشانی بێتای نێتسکەیپ ناڤیگەیتەر ٣ لە کانوونی یەکەمدا.[٩] دوا ھەڵبژاردەی ناوەکە بووە ھۆی سەرلێ تێکچوون، ئەوەش بەھۆی ئەوەی وا دەردەکەوت کە لەڕێلادەر (Spin-off)ێک بێت لە زمانی بەرنامەسازی جاڤا. ئەو ھەڵبژاردەیە دواتر وەسفکرا[١٠] وەک بازاڕبۆکردنێک لەلایەن نێتسکەیپەوە بۆ جاڤاسکریپت و پێ ناساندنی وەک زمانە نوێیە گەرم و گوڕەکەی وێب.

بەھەڵە تێگەیشتنێکی باو ھەیە کە گوایە جاڤاسکریپت کاریگەر بووە بە زمانێکی سکریپتسازی وێبی پێشووتر بەناوی Cmm ەوە کە پەرەی پێدرا بوو لەلایەن نۆمباسەوە (کەجیاوازە لە سی ماینەس ماینەس کە لە ١٩٩٧ دا دروست کرا).[١١][١٢] براندن ئایک ھەرگیز Cmmی نەبیستبوو بەر لە دروستکردنی LiveScript.[١٣]

جاڤاسکریپتی لای ڕاژەکار

[دەستکاری]

لە کانوونی یەکەمی ١٩٩٥دا و لەپاش دەرچوونی جاڤاسکریپت بۆ وێبگەڕەکان، نێتسکەیپ جێبەجێکردنێکی نوێی جاڤاسکریپتی بۆ بەرنامەسازی لای ڕاژەکار ناساند لەڕێگەی نێتسکەیپ ئینتەرپرایز سێرڤەر.[١٤]

لە ١٩٩٦ەوە، ڕاژەکاری ئای ئێس ئێسی وێب پاڵپشتی دەکات لە جێبەجێکردنەکەی مایکرۆسۆفت بۆ جاڤاسکریپتی لای ڕاژەکار، کە پێی دەوترێت جەیسکریپت.[١٥]

لە ناوەڕاستی ٢٠٠٠ەکانەوە، جاڤاسکریپت لەلای ڕاژەکاری دیکە بەردەستە، لەنێویاندا نۆد.جەی ئێس کە لە ٢٠٠٩ دا ناسێنرا.[١٦]

گرتنەخۆ لەلایەن مایکرۆسۆفتەوە

[دەستکاری]

تەکنەلۆجیاکانی سکریپتسازیی مایکرۆسۆفت و لەنێویانداا ڤیبیسکریپت و جەیسکریپت لە ١٩٩٦ دا دەرچوون. جەی سکریپت، کە جێبەجێ کردنێکی ئەندازیاریی ھەڵگەڕاوە (Reverse Engineering)ی جاڤاسکریپتەکەی نێتسکەیپە، بەشێک بووە لە ئینتەرنێت ئێکسپلۆرەر ٣. جەیسکریپت ھەروەھە بەردەستیش بووە بۆ سکریپتسازی لایەنی ڕاژەکار لەسەر ئای ئێس ئێس. ئینتەرنێت ئێکسپلۆرەر ٣ پاڵپشتی مایکرۆسۆفتی بۆ CSS و بەشێک لە درێژکراوەکانی HTML لەخۆ دەگرن، بەڵام لەھەموو ئەمانەدا جێبەجێکردنەکە بەئاشکرایی جیاواز بوو لەوەی نێتسکەیپت.[١٧][١٨] ئەو جیاوازیانە وای دەکرد کە کاری دیزاینەران و بەرنامەسازان گەلێک قورس بێت بەتایبەتی لەکاتی دروستکردنی مالپەرێکدا کە لەسەر ھەردوو وێبگەڕەکە بە تەواوی کاری بکردایە. ئەمە بووە ھۆی دەرکەوتنی لۆگۆکانی وەک «باشتر کاردەکات لەسەر ئینتەرنێت ئێکسپلۆرەر» و «باشتر کاردەکات لەسەر نێتسکەیپ» کە نموونەی سەرەتاکانی شەڕەکانی وێبگەڕ.[١٩] جاڤاسکریپت تۆز تۆز بووە خاوەنی ناوبانگێک بۆ وێبێکی سەکۆبڕ و بنەماستاندارد. ھەندێک پەرەپێدەر توانیان وابکەن ماڵپەرەکانیان لەسەر ھەردووک وێبگەڕ بخەنە کار بەڵام زۆرێک ھەبوون کە سەرکەوتوو نەبوون لەو کارەدا. دوابەدوای دەرچوونی ئینتەرنێت ئێکسپلۆرەر ٤، مایکرۆسۆفت بیرۆکەی ئەیچ تی ئێم ئێڵی بزۆکی خستەڕوو، بەڵام ھێشتا جیاوازی جێبەجێکردنەکان و جیاوازی لە مۆدێلی بەڵگەنامەیی تەن وەک خۆیان مانەوە و بوونە تەگەرەی سەرەکیی و ھۆکاری سەرەکیی باربڵاوبوونی جاڤاسکریپت لەسەر وێب.[١٧]

سینتاکس

[دەستکاری]

یەکێ لە کێشە گەورەکانی جاڤاسکریپت، فرەیی شێوازی نووسینی کۆدە. لەبەر بڵاوی جاڤاسکریپت ستاندارد دانرا بۆ زمانەکە بۆ ھاوکاریکردنی ئاڵوگۆڕی کۆد و پەرەپێدانی مەکینە و بەرنامەی زیاتر بۆ جاڤاسکریپت. یەکێک لەو ستانداردانە بریتییە لە ECMAScript.

نموونەی کۆد

[دەستکاری]

ئەمەی خوارەوە نموونەی بەرنامەی "ھەلەو وێڵد"ە لە جاڤاسکریپت. لەبەرئەوەی جاڤاسکریپت لە وێبگەڕ کار دەکات تەنیا جێگایەک "دەرھاویشت"ەی کۆدی تێدا دەرکەوێت بریتییە لە "کۆنسۆڵ"ی وێبگەڕ.

console.log("Hello World!");

نموونەی ئاڵۆزتر: ئەمەی خوارەوە بریتییە لە "فەنکشن"ێکی ڕیکێرسیڤ (خۆبارکەرەوە):

function factorial(n) {
    if (n === 0) {
        return 1;  // 0! = 1
    }
    return n * factorial(n - 1);
}

factorial(3); // ئەنجامەکە 6
// چۆن کار دەکات؟ ٣ جار خۆی بانگ دەکاتەوە. ٣ جاران ٢ جاران ١ چونکە کە بوو بە سفر نرخەکە دەبێتە ١.

سەرچاوەکان

[دەستکاری]
  1. ^ Flanagan ٢٠١١, pp. ١–٢.
  2. ^ Press release announcing JavaScript, "Netscape and Sun announce JavaScript", PR Newswire, December 4, 1995
  3. ^ «Standard ECMA-262». Ecma International. ٣ی تەممووزی ٢٠١٧.
  4. ^ [١], node.js ECMAScript Modules Specification
  5. ^ Flanagan، David (٢٠١١). JavaScript – The definitive guide. pp. ١.
  6. ^ «ECMAScript Language Overview» (PDF). ٢٣ی تشرینی یەکەمی ٢٠٠٧. p. ٤. لە ڕەسەنەکە (PDF) لە ١٣ی تەممووزی ٢٠١٠ ئەرشیڤ کراوە. لە ٣ی ئایاری ٢٠٠٩ ھێنراوە. ٢٦ی ئازاری ٢٠٠٩ لە وەیبەک مەشین، ئەرشیڤ کراوە.
  7. ^ «Chapter 4. How JavaScript Was Created». لە ڕەسەنەکە لە ٢٧ی شوباتی ٢٠٢٠ ئەرشیڤ کراوە. لە ١٠ی تشرینی یەکەمی ٢٠١٨ ھێنراوە.
  8. ^ Severance، Charles (February 2012). «JavaScript: Designing a Language in 10 Days». Computer. 45 (2). IEEE Computer Society: 7–8. doi:10.1109/MC.2012.57. لە 23 March 2013 ھێنراوە. {{cite journal}}: نرخەکانی ڕێکەوت بپشکنە لە: |accessdate= (یارمەتی)
  9. ^ «TechVision: Innovators of the Net: Brendan Eich and JavaScript». web.archive.org. لە ڕەسەنەکە لە ٨ی شوباتی ٢٠٠٨ ئەرشیڤ کراوە. ٨ی شوباتی ٢٠٠٨ لە وەیبەک مەشین، ئەرشیڤ کراوە.
  10. ^ Fin JS (2016-06-17)، Brendan Eich – CEO of Brave، لە 2018-02-07 ھێنراوە
  11. ^ «The History of Programming Languages». oreilly.com. O'Reilly Media. 2004. لە ڕەسەنەکە لە ١٢ی تەممووزی ٢٠١٦ ئەرشیڤ کراوە. لە ١٦ی تەممووزی ٢٠١٦ ھێنراوە.
  12. ^ «What Is JavaScript?» (PDF). wiley.com. Wiley. لە ڕەسەنەکە (PDF) لە ٣٠ی نیسانی ٢٠٢٠ ئەرشیڤ کراوە. لە ١٦ی تەممووزی ٢٠١٦ ھێنراوە.
  13. ^ Noorda، Brent (٢١ی ئەیلوولی ٢٠١٣). «Brent Noorda's Answers on ECMA». quora.com. لە ١٦ی تەممووزی ٢٠١٦ ھێنراوە.
  14. ^ Netscape Communications Corporation (١١ی کانوونی یەکەمی ١٩٩٨). «Server-Side JavaScript Guide». oracle.com. Netscape Communications Corporation. لە ڕەسەنەکە لە ٢٩ی ئازاری ٢٠١٩ ئەرشیڤ کراوە. لە ١٦ی تەممووزی ٢٠١٦ ھێنراوە.
  15. ^ «Introducing JScript .NET». Microsoft Developer Network. Microsoft. ١٤ی تەممووزی ٢٠٠٠. لە ١٠ی نیسانی ٢٠١٨ ھێنراوە. [S]ince the 1996 introduction of JScript version 1.0 … we've been seeing a steady increase in the usage of JScript on the server—particularly in Active Server Pages (ASP)
  16. ^ Mahemoff, Michael (١٧ی کانوونی یەکەمی ٢٠٠٩). «Server-Side JavaScript, Back with a Vengeance». readwrite.com. لە ١٦ی تەممووزی ٢٠١٦ ھێنراوە.
  17. ^ ئ ا Champeon، Steve (٦ی نیسانی ٢٠٠١). «JavaScript, How Did We Get Here?». oreilly.com. لە ڕەسەنەکە لە ١٩ی تەممووزی ٢٠١٦ ئەرشیڤ کراوە. لە ١٦ی تەممووزی ٢٠١٦ ھێنراوە.
  18. ^ «Microsoft Internet Explorer 3.0 Beta Now Available». microsoft.com. Microsoft. ٢٩ی ئایاری ١٩٩٦. لە ١٦ی تەممووزی ٢٠١٦ ھێنراوە.
  19. ^ McCracken، Harry (١٦ی ئەیلوولی ٢٠١٠). «The Unwelcome Return of "Best Viewed with Internet Explorer"». technologizer.com. لە ڕەسەنەکە لە ٢٣ی حوزەیرانی ٢٠١٨ ئەرشیڤ کراوە. لە ١٦ی تەممووزی ٢٠١٦ ھێنراوە.

بەستەرە دەرەکییەکان

[دەستکاری]