جاڤاسکریپت
پارادایم | فرەپارادایم: تەنخواز (لەسەر بنچینەی پرۆتۆتایپ), فرمانی، فەنکشنەڵ, بەڕووداو پاڵنراو[١] |
---|---|
داڕێژەر | براندن ئایک |
پەرەپێدەر | کۆمپانیای گەیاندنی نێتسکەیپ، دامەزراوەی مۆزیلا، ئێکمە ئینتەرناشناڵ |
یەکەم دەرکەوتن | ٤ی کانوونی یەکەمی ١٩٩٥[٢] |
وەشانی جێگیر | 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
// چۆن کار دەکات؟ ٣ جار خۆی بانگ دەکاتەوە. ٣ جاران ٢ جاران ١ چونکە کە بوو بە سفر نرخەکە دەبێتە ١.
سەرچاوەکان
[دەستکاری]- ^ Flanagan ٢٠١١, pp. ١–٢.
- ^ Press release announcing JavaScript, "Netscape and Sun announce JavaScript", PR Newswire, December 4, 1995
- ^ "Standard ECMA-262". Ecma International. ٢٠١٧-٠٧-٠٣.
- ^ [١], node.js ECMAScript Modules Specification
- ^ Flanagan, David (2011). JavaScript – The definitive guide. pp. ١.
- ^ "ECMAScript Language Overview" (PDF). ٢٠٠٧-١٠-٢٣. p. ٤. Archived from the original (PDF) on 2010-07-13. Retrieved 2009-05-03. ٢٦ی ئازاری ٢٠٠٩ لە وەیبەک مەشین، ئەرشیڤ کراوە.
- ^ "Chapter 4. How JavaScript Was Created". ٢٧ی شوباتی ٢٠٢٠ لە وەیبەک مەشین، ئەرشیڤ کراوە.
- ^ Severance, Charles (February 2012). "JavaScript: Designing a Language in 10 Days". Computer. IEEE Computer Society. 45 (2): 7–8. doi:10.1109/MC.2012.57. Retrieved 23 March 2013.
- ^ "TechVision: Innovators of the Net: Brendan Eich and JavaScript". web.archive.org. Archived from the original on 2008-02-08. ٨ی شوباتی ٢٠٠٨ لە وەیبەک مەشین، ئەرشیڤ کراوە.
- ^ Fin JS (2016-06-17), Brendan Eich – CEO of Brave, retrieved 2018-02-07
- ^ "The History of Programming Languages". oreilly.com. O'Reilly Media. 2004. Archived from the original on 2016-07-12. Retrieved 16 July 2016. ١٢ی تەممووزی ٢٠١٦ لە وەیبەک مەشین، ئەرشیڤ کراوە.
- ^ "What Is JavaScript?" (PDF). wiley.com. Wiley. Archived from the original (PDF) on 30ی Aprilی 2020. Retrieved 16 July 2016.
{{cite web}}
: Check date values in:|archive-date=
(help) - ^ Noorda, Brent (21 September 2013). "Brent Noorda's Answers on ECMA". quora.com. Retrieved 16 July 2016.
- ^ Netscape Communications Corporation (11 December 1998). "Server-Side JavaScript Guide". oracle.com. Netscape Communications Corporation. Archived from the original on 29ی Marchی 2019. Retrieved 2016-07-16.
{{cite web}}
: Check date values in:|archive-date=
(help) - ^ Clinick, Andrew (July 14, 2000). "Introducing JScript .NET". Microsoft Developer Network. Microsoft. Retrieved 10 April 2018.
[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)
- ^ Mahemoff, Michael (17 December 2009). "Server-Side JavaScript, Back with a Vengeance". readwrite.com. Retrieved 2016-07-16.
- ^ ئ ا Champeon, Steve (6 April 2001). "JavaScript, How Did We Get Here?". oreilly.com. Archived from the original on 2016-07-19. Retrieved 16 July 2016. ١٩ی تەممووزی ٢٠١٦ لە وەیبەک مەشین، ئەرشیڤ کراوە.
- ^ "Microsoft Internet Explorer 3.0 Beta Now Available". microsoft.com. Microsoft. 29 May 1996. Retrieved 16 July 2016.
- ^ McCracken, Harry (16 September 2010). "The Unwelcome Return of "Best Viewed with Internet Explorer"". technologizer.com. Archived from the original on 23ی Juneی 2018. Retrieved 16 July 2016.
{{cite web}}
: Check date values in:|archive-date=
(help)
بەستەرە دەرەکییەکان
[دەستکاری]- جاڤاسکریپت لە کێرلی
کۆمنزی ویکیمیدیا، میدیای پەیوەندیدار بە جاڤاسکریپت تێدایە. |