ما هي تفاصيل Javaنص برمجي؟ مقدمة مع مثال "مرحباً بالعالم"

⚡ ملخص ذكي

Javaلغة البرمجة النصية هي اللغة التي تجعل صفحات الويب تفاعلية. تشرح هذه المقدمة ما هي Javaالبرنامج النصي هو، من أين أتى، وكيف تقوم المتصفحات و Node.js بتنفيذه، وكيفية كتابة وتشغيل أول برنامج نصي "Hello World".

  • 🌐 العميل والخادم: Javaبدأ البرنامج النصي داخل المتصفح ولكنه يعمل الآن أيضًا على الخوادم من خلال Node.js و Deno و Bun.
  • 🕰️ الأصل: قام بريندان إيتش بتطوير اللغة في شركة نتسكيب عام 1995؛ وكانت تسمى موكا، ثم لايف سكريبت، ثم Javaالنصي.
  • 📜 المعيار: ECMAScript هي المواصفات الرسمية، لذا فإن كل متصفح حديث يتفق على نفس قواعد اللغة الأساسية.
  • 🛠️ الإعداد: يكفي استخدام محرر نصوص بسيط وأي متصفح حديث لكتابة واختبار أول برنامج نصي لك.
  • 🖥️ وحدة التحكم أولاً: اضغط على F12، وافتح علامة تبويب وحدة التحكم، وقم بتشغيل أسطر مفردة من Javaكتابة البرنامج النصي دون إنشاء أي ملفات.
  • ☕ ليس Java: Java و Javaتشترك البرامج النصية في أربعة أحرف فقط ولا تشترك في أي شيء آخر تقريبًا، بما في ذلك أنظمة الأنواع وأوقات التشغيل.
  • ⚡ التنسيب: ضع النصوص البرمجية داخل علامات script أو اربط ملف .js خارجي للحصول على صفحات أنظف وقابلة للتخزين المؤقت.

ما هي تفاصيل Javaسيناريو

ما هي تفاصيل Javaالبرنامج النصي؟

Javaلغة البرمجة النصية هي لغة برمجة عالية المستوى تُضيف سلوكيات إلى صفحات الويب. وهي إحدى التقنيات الأساسية الثلاث للويب: توفر لغة HTML البنية، وتوفر لغة CSS المظهر، و Javaيوفر البرنامج النصي التفاعل. في كل مرة يعرض فيها مربع البحث اقتراحات أثناء الكتابة، أو يتم تحريك شريط الصور، أو يحذرك نموذج التسجيل من وجود حقل مفقود، Javaيقوم البرنامج النصي بهذا العمل في الخلفية.

يوضح الرسم البياني أدناه كيف يتم وضع البرنامج النصي بجانب ترميز صفحة ويب عادية.

مقدمة إلى Javaسيناريو

طوال معظم حياتها Javaوُصفت لغة البرمجة النصية بأنها لغة برمجة نصية من جانب العميل، لأنها كانت تعمل فقط داخل المتصفح. هذا الوصف غير مكتمل الآن. فمنذ ظهور Node.js في عام 2009، أصبحت اللغة نفسها تُستخدم أيضًا في خوادم الويب، وأدوات سطر الأوامر، وتطبيقات سطح المكتب، وتطبيقات الجوال. والوصف الأكثر دقة اليوم هو أن Javaلغة البرمجة النصية هي لغة عامة الأغراض ذات حضور قوي بشكل غير عادي في المتصفح.

الخصائص التي تحدد اللغة هي:

  • مُصنَّف ديناميكيًا: يمكن للمتغير أن يحمل رقمًا الآن وسلسلة نصية بعد لحظة، لذلك يتم فحص الأنواع أثناء تشغيل البرنامج.
  • تمت ترجمتها وتجميعها في الوقت المناسب: تقوم محركات مثل V8 في Chrome و Node.js بتحويل التعليمات البرمجية التي يتم تنفيذها بشكل متكرر إلى لغة الآلة لتحقيق السرعة.
  • متعدد النماذج: يتم دعم جميع أنماط البرمجة الإجرائية والوظيفية والموجهة للكائنات.
  • مدفوع بالأحداث: يتفاعل الكود مع النقرات وضغطات المفاتيح والمؤقتات واستجابات الشبكة بدلاً من التشغيل من الأعلى إلى الأسفل والتوقفping.
  • أحادي الخيوط مع حلقة أحداث: يتم وضع العمليات البطيئة مثل مكالمة الشبكة في قائمة الانتظار بدلاً من تجميد الصفحة.

💡 نصيحة: Javaلغة سكريبت ولغة إيكما سكريبت ليستا لغتين متنافستين. إيكما سكريبت هي المواصفات المكتوبة، و Javaالبرنامج النصي هو تطبيق لتلك المواصفات التي توفرها المتصفحات و Node.js فعليًا.

تاريخ Javaسيناريو

بريندان إيتش ابتكر Javaبدأ سكريبت في شركة نتسكيب للاتصالات عام 1995، حيث أنتج أول نموذج أولي عملي في غضون عشرة أيام تقريبًا. وكان المشروع يُطلق عليه داخليًا اسم موكاتم إصداره ضمن نسخة تجريبية من متصفح نتسكيب نافيجاتور 2.0 باسم ليف سكريبت في سبتمبر 1995، وتم تغيير اسمه Javaسيناريو في ديسمبر 1995 كجزء من اتفاقية تسويق بين نتسكيب وسن مايكروسيستمز، الشركة التي كانت تمتلك Java في ذلك الوقت.

Javascript تاريخنا

إن إعادة التسمية هي السبب الوحيد الذي يجعل الكثير من المبتدئين لا يزالون يفترضون Javaسكريبت هو إصدار خفيف الوزن من Javaاللغتان مختلفتان تمامًا من حيث التصميم والملكية وبيئة التشغيل. قدمت نتسكيب اللغة إلى منظمة ECMA الدولية عام ١٩٩٦، ونُشرت النسخة الأولى من معيار ECMA-262 في يونيو ١٩٩٧. يوضح الجدول أدناه أهم المحطات الرئيسية عند قراءة الشفرة البرمجية القديمة.

السنة Milestone لماذا يهم
1995 موكا، ثم لايف سكريبت، ثم Javaسيناريو تم إنشاء هذه اللغة في شركة نتسكيب بواسطة بريندان إيتش.
1997 ECMA-262 الطبعة الأولى تكتسب اللغة معيارًا كتابيًا محايدًا للبائعين.
2009 ES5 والإصدار الأول من Node.js يصل الوضع الصارم، و Javaيفلت البرنامج النصي من المتصفح.
2015 ES6 (ECMAScript 2015) تمت إضافة let و const ودوال الأسهم والفئات والوحدات النمطية والوعود.
2016 فصاعدا إصدارات ECMAScript السنوية يتم إصدار الميزات الأصغر حجماً كل شهر يونيو بدلاً من إصدارات كبيرة نادرة.

بسبب دورة الإصدار السنوية، يبدو الكود المكتوب قبل عام 2015 مختلفًا بشكل ملحوظ عن الكود الحديث. تستخدم الدروس التعليمية القديمة var في كل مكان، بينما يفضل الكود الحالي let و const متى تعريف المتغيرات في Javaسيناريو.

ما هي تفاصيل Javaما الغرض من استخدام هذا النص البرمجي؟

Javaلم يعد استخدام لغة البرمجة النصية مقتصراً على حيل الصفحات الصغيرة. فالصيغة نفسها تظهر الآن في أربعة مواضع مختلفة تماماً، وهذا ما يجعلها تُصنف باستمرار كواحدة من أكثر اللغات استخداماً في استطلاعات رأي المطورين.

المساحة ابحث عن Javaيقوم البرنامج النصي بذلك هناك الأدوات النموذجية
الواجهة الأمامية للمتصفح يتعامل مع النقرات، ويحدث الصفحة دون إعادة تحميلها، ويتحقق من صحة النماذج، ويرسم المخططات. React، Vue، Angular، Svelte
جانب الخادم يقوم بمعالجة طلبات HTTP، ويتواصل مع قواعد البيانات، ويبني واجهات برمجة تطبيقات REST أو GraphQL. Node.js، Deno، Bun، Express
تطبيقات الهاتف المحمول يبني Android وتطبيقات iOS من قاعدة بيانات مشتركة واحدة. رد فعل أصلي, Ionicمكثف
تطبيقات سطح المكتب يغلف واجهة الويب في نافذة أصلية مع إمكانية الوصول إلى نظام الملفات. إلكترون، تاوري
الأدوات والأتمتة يقوم بتجميع الأصول، وتشغيل مجموعات الاختبار، وقيادة المتصفحات لإجراء اختبارات شاملة. Vite، webpack، Jest، Playwright

تعتمد عليه أيضًا الألعاب، وتصورات البيانات، وإضافات المتصفح، ومشاريع الأجهزة الصغيرة. بالنسبة للمبتدئين، النتيجة العملية بسيطة: الجهد الذي تبذله في تعلم قواعد اللغة الآن ينتقل مباشرةً إلى العمل على الخوادم، وتطبيقات الجوال، وأتمتة الاختبارات لاحقًا. إذا كنت ترغب في رؤية تطبيق اللغة على مشاكل حقيقية، فاعمل على مجموعة من... عملي Javaأمثلة على أكواد البرمجة النصية بمجرد أن تصبح الأساسيات مريحة.

كيفية تشغيل Javaالبرنامج النصي؟

Javaلا يتم تنفيذ البرنامج النصي تلقائيًا. إنه يحتاج إلى بيئة مضيفة تحتوي على Javaسيناريو محركيستخدم كل من متصفحي Chrome و Edge محرك V8. Firefox يستخدم SpiderMonkey، ويستخدم Safari JavaScriptCore. عندما يقوم المتصفح بتنزيل صفحة HTML ويجد نصًا برمجيًا، فإنه يسلم هذا النص البرمجي إلى محركه، الذي يقوم بتحليله وتجميعه وتشغيله.

بيئة الاستضافة الثانية هي Node.js، التي تُضمّن محرك V8 نفسه خارج المتصفح. هكذا تعمل اللغة نفسها على الخادم أو في سطر الأوامر. الميزة العملية لـ Javaالنص هو ذلك يدعمها كل متصفح حديث on Windowsو Linux و macOSلذا نادرًا ما تحتاج إلى القلق بشأن المتصفح الذي يستخدمه الزائر. هذا تحسين حقيقي مقارنةً بـ VBScript، الذي كان يعمل فقط على متصفح إنترنت إكسبلورر. Windows وقد تم إيقاف استخدامه الآن جنباً إلى جنب مع متصفح إنترنت إكسبلورر نفسه.

⚠️ تحذير: المتصفح Javaسكريبت و Node.js Javaتشترك البرامج النصية في اللغة الأساسية ولكن ليس في الكائنات المحيطة بها. document و window لا توجد إلا في المتصفح، و require وتوجد وحدات نظام الملفات فقط في Node.js. سيؤدي نسخ التعليمات البرمجية بين النظامين دون التحقق إلى ظهور خطأ مرجعي.

الأدوات التي تحتاجها

أنت بحاجة إلى محرر نصوص لكتابة التعليمات البرمجية ومتصفح لعرض النتيجة. Notepad++, Visual Studio Code, Sublime Textوأي محرر نصوص آخر ترتاح لاستخدامه سيفي بالغرض، مع العلم أن استخدام محرر نصوص يدعم تمييز الصيغة ومطابقة الأقواس سيوفر عليك الكثير من الجهد في تصحيح الأخطاء. جميع المتصفحات الحديثة تعمل. Google Chrome, Firefox, Microsoft Edgeأو متصفح سفاري. لا يلزم شراء أو تثبيت أي شيء آخر غير هذين العنصرين.

بسيط Javaبرنامج نصي

اذا واصلتم Javaيجب أن يكون النص البرمجي داخل مستند HTML نفسه، ويجب أن يكون كل الكود بين فتحتين <script> علامة وختام </script> الوسم. هذه هي الطريقة التي يميز بها المتصفح الكود الخاص بك عن الترميز المحيط به. الصفحات القديمة أيضًا تُعيّن وسمًا. type السمة، مكتوبة على النحو التالي: <script type="text/javascript">، وهو ما كان ضروريًا عندما كانت لغات البرمجة المنافسة من جانب العميل موجودة مثل VBScript. أما الصفحات الحديثة فتتجاهله، لأن HTML5 يعامله text/javascript كإعداد افتراضي. الإصداران أدناه متطابقان وظيفيًا، وكلاهما لا يزال صالحًا.

مرحبا العالم مثال

يعرض البرنامج الأول التقليدي رسالة. ضع الترميز التالي في ملف باسم hello.html وافتحه في متصفح الإنترنت.

<html>
<head>
	<title>My First JavaScript code!!!</title>
	<script type="text/javascript">
		alert("Hello World!");
	</script>
</head>
<body>
</body>
</html>

الإخراج:

A browser dialog box opens containing the text:

Hello World!

ملاحظة: type="text/javascript" ليس ذلك ضرورياً في HTML5. الكود التالي يعمل بنفس الطريقة تماماً.

<html>
<head>
	<title>My First JavaScript code!!!</title>
	<script>
		alert("Hello World!");
	</script>
</head>
<body>
</body>
</html>

الإخراج:

A browser dialog box opens containing the text:

Hello World!

بمجرد أن يتجاوز طول الصفحة بضعة أسطر، يتم نقل النص البرمجي إلى مكانه الخاص. .js يحافظ الملف على قابلية قراءة الترميز ويسمح للمتصفح بتخزين الكود مؤقتًا. وتُغطى الاختلافات بالتفصيل في هذه المقارنة لـ داخلي وخارجي Javaسيناريو.

كيفية كتابة وتشغيل أول نص برمجي لك

هناك ثلاث طرق عملية للتنفيذ Javaيجب على المبتدئين تجربة الأنواع الثلاثة جميعها لأن كل نوع منها يناسب موقفًا مختلفًا.

1. وحدة تحكم المتصفح. هذا هو الخيار الأسرع ولا يتطلب أي ملفات على الإطلاق. افتح أي صفحة ويب، ثم اضغط F12 (أو Ctrl+Shift+أنا على Windows وفي لينكس، Cmd+Option+I تشغيل macOS) ، وحدد ملف كنسولات اضغط على مفتاح Tab. اكتب سطرًا، ثم اضغط على مفتاح Enter، وستظهر النتيجة فورًا. إنه المكان الأمثل لاختبار تعبير واحد أو للتحقق من القيمة التي تُرجعها دالة.

// Type each line into the browser console and press Enter
console.log(2 + 2);
console.log("Guru" + 99);
console.log(Math.max(4, 12, 7));
console.log(typeof "hello");

الإخراج:

4
Guru99
12
string

لاحظ السطر الثاني. إضافة الرقم 99 إلى السلسلة "Guruينتج " السلسلة "Guru99" بدلاً من خطأ، لأن Javaيقوم البرنامج النصي بتحويل الرقم إلى نص تلقائيًا. هذا السلوك مريح، ولكنه أيضًا مصدر شائع للأخطاء البرمجية لدى المبتدئين.

2. ملف HTML. هذا مثال "مرحباً بالعالم" الموضح أعلاه. استخدمه كلما احتاج الكود إلى التعامل مع الصفحة نفسها، على سبيل المثال قراءة قيمة نموذج أو تغيير عنصر.

3. تشغيل Node.js من سطر الأوامر. قم بتثبيت Node.js، واحفظ الكود في ملف بـ .js ثم قم بتشغيل الإضافة. node first-script.jsلا شيء يُعرض، لذا console.log تصبح قناة الإخراج الخاصة بك. هذا هو المسار الذي يجب اتباعه عندما تريد ممارسة خصائص اللغة الخالصة دون أي HTML محيط بها.

// first-script.js
const language = "JavaScript";
const createdBy = "Brendan Eich";
const releaseYear = 1995;

console.log(language + " was created by " + createdBy + " in " + releaseYear + ".");

const usedFor = ["Interactive web pages", "Server apps with Node.js", "Mobile apps"];

usedFor.forEach(function (item, index) {
  console.log(index + 1 + ". " + item);
});

الإخراج:

JavaScript was created by Brendan Eich in 1995.
1. Interactive web pages
2. Server apps with Node.js
3. Mobile apps

يستخدم هذا النص البرمجي القصير بالفعل ثلاث أفكار ستصادفها باستمرار: الثوابت المُعلنة باستخدام constو مجموعة تحتوي على قائمة من القيم، ودالة رد نداء يتم تمريرها إلى forEachإعادة كتابة نفس الحلقة باستخدام for يُعدّ هذا البيان تمرينًا مفيدًا بعد دراستك له. حلقات في Javaسيناريو.

Javaالنص مقابل Java

تُعدّ هذه الأسماء أكبر خطأ في تاريخ البرمجة، والارتباك الذي تسببه يستحق التوضيح مبكراً. Javaتم تغيير اسم سكريبت من لايف سكريبت لأسباب تسويقية بحتة في عام 1995، في وقت كان فيه Java كانت هذه التقنية الأكثر تداولاً على الإنترنت. وقد صُممت اللغتان من قبل أشخاص مختلفين، في شركات مختلفة، لحل مشاكل مختلفة.

البعد Javaسيناريو Java
تم إنشاء الموقع الالكتروني بواسطة بريندان إيتش في نتسكيب، 1995 جيمس جوسلينج في شركة صن مايكروسيستمز، 1995
Typing ديناميكي وضعيف النوع ثابت ومكتوب بقوة
يعمل على محركات المتصفح و Node.js استخدم Java آلة افتراضية
مجموعة يتم تجميعها في الوقت المناسب بواسطة المحرك أثناء التشغيل تم تجميعها مسبقًا إلى بايت كود
نموذج الكائن يعتمد على النموذج الأولي، مع إضافة بناء الجملة للفئة في ES6 قائم على الفئات منذ البداية
امتداد الملف . شبيبة ملف جافا مُجمّع إلى ملف فئة
الاستخدام الشائع واجهات المستخدم الأمامية للمواقع الإلكترونية، وواجهات برمجة التطبيقات، والأدوات أنظمة إدارة المؤسسات الخلفية، Androidالبيانات الضخمة

التشابه الحقيقي الوحيد بينهما هو أن كليهما يستعيران صيغة الأقواس المعقوفة من لغة C. تعلم أحدهما لا يُعلّمك الآخر، مع أن الصيغة المشتركة تجعل اللغة الثانية أسهل قليلاً في القراءة. إذا كان القصد صارمًاping يسعى اليك، TypeScript يضيف طبقة نوع ثابتة فوق Javaنص برمجي أثناء تجميعه إلى نص عادي Javaالنص، والاختلافات موضحة في هذا TypeScript و Javaمقارنة النصوص.

بعد وضع الأساسيات، تكون الخطوات التالية الطبيعية هي التفاعلية Javaتمارين كتابة السيناريو، ثم المتغيرات وأنواع البيانات، تليها المصفوفات و الحلقات. بعد ذلك، وجوه المنحى Javaسيناريو يشرح كيفية ترابط الكائنات والنماذج الأولية والفئات، و تنسيق السلسلة يغطي هذا الموضوع معالجة النصوص التي ستستخدمها في كل برنامج نصي تقريبًا.

الأسئلة الشائعة

ECMAScript هو المعيار المكتوب، المنشور باسم ECMA-262، والذي يحدد بناء الجملة والكائنات المضمنة. Javaيُعدّ Script التطبيق العملي لهذا المعيار الذي توفره شركات تصنيع المتصفحات و Node.js. وتشير أسماء الإصدارات مثل ES6 إلى إصدارات المعيار.

كلاهما. يُرسل الكود المصدري كنص عادي ويقرأه المحرك، لكن محركات مثل V8 وSpiderMonkey تُحوّل الدوال المُنفذة بشكل متكرر إلى كود الآلة في الوقت المناسب. والنتيجة هي لغة مُفسّرة بسرعة قريبة من سرعة الترجمة.

تشمل الأسباب الشائعة فقدان وسم إغلاق البرنامج النصي، أو مسار خاطئ للملف الخارجي، أو خطأ إملائي يؤدي إلى خطأ في بناء الجملة، أو تشغيل برنامج نصي قبل وجود العنصر المستهدف. افتح علامة تبويب وحدة التحكم لقراءة الخطأ بالتفصيل.

لا بأس باستخدام ملفات جافا سكريبت داخلية لبضعة أسطر أثناء التعلم. انتقل إلى ملف جافا سكريبت خارجي بمجرد إعادة استخدام الكود في أكثر من صفحة، لأن المتصفح سيتمكن حينها من تخزينه مؤقتًا، مما يحافظ على سهولة قراءة الكود.

بإمكانهم إنتاج أجزاء برمجية فعّالة بسرعة، لكنهم يخلطون أيضًا بين واجهات برمجة التطبيقات الخاصة بالمتصفح فقط وتلك الخاصة بـ Node.js فقط، وقد يبتكرون طرقًا جديدة أحيانًا. جرّب كل اقتراح، واقرأ أخطاء وحدة التحكم بنفسك، وتعامل مع الناتج كمسودة وليس كإجابة نهائية.

يقوم هذا النظام ببناء واجهة الدردشة، وبث استجابات النموذج رمزًا رمزًا، واستدعاء واجهات برمجة تطبيقات النموذج من خادم Node.js. كما تقوم مكتبات مثل TensorFlow.js وONNX Runtime Web بتشغيل نماذج أصغر مباشرةً داخل المتصفح.

تلخيص هذه التدوينة بـ: