diff --git a/1-js/01-getting-started/1-intro/article.md b/1-js/01-getting-started/1-intro/article.md index 9f1a27f17..c0df008cc 100644 --- a/1-js/01-getting-started/1-intro/article.md +++ b/1-js/01-getting-started/1-intro/article.md @@ -1,26 +1,26 @@ -# مقدّمة للجافاسكربت +# مقدّمة لجافا سكريبت -دعونا نرى ما يميز الجافاسكريبت ، وما يمكننا تحقيقه بها ، وأي التقنيات الأخرى التي تعمل بشكل جيد معها. +دعونا نرى ما يميز جافا سكريبت ، وما يمكننا تحقيقه بها ، وأي التقنيات الأخرى التي تعمل بشكل جيد معها. -## ماهي الجافاسكربت؟ +## ماهي جافا سكريبت؟ -*الجافاسكربت* تم إنشائها في بادئ الأمر "لجعل الصفحات الإلكترونية حية". +*جافا سكريبت* تم إنشائها في بادئ الأمر "لجعل الصفحات الإلكترونية حية". البرامج في هذه اللغة تسمّي *سكريبتات*. يمكن كتابتها مباشرة في الصفحات الإلكترونية HTML و سوف يتم تفعيلها آليا عند تحميل الصفحة. تتوفر السكريبتات وتنفذ كنص عادي. لا تحتاج الى تحضير خاص أو تحويل برمجي لتشتغل. -في هذا الجانب ، تختلف الجافاسكربت اختلافًا كبيرًا عن لغة أخرى تسمى [جافا](https://ar.wikipedia.org/wiki/جافا_(لغة_برمجة)) +في هذا الجانب ، تختلف جافا سكريبت اختلافًا كبيرًا عن لغة أخرى تسمى [جافا](https://ar.wikipedia.org/wiki/جافا_(لغة_برمجة)) ```smart header="لماذا تم تسميتهاجافاسكريبت؟" عندما تم إنشاء جافا سكريبت، كانت تحمل اسما اخر "لايفسكربت". ولكن كان لجافا شعبية كبيره في ذلك الوقت، لذلك تقرّر أن وضع لغة جديدة كـ "الأخ الأصغر" لجافا سيساعد. -ولكن مع تطورها ، أصبحت الجافاسكريبت لغة مستقلة تمامًا مع مواصفاتها الخاصة التي تسمى [إكماسكربت](http://ar.wikipedia.org/wiki/إي_سي_إم_ايه_سكريبت) ، والآن لا علاقة لها بجافا على الإطلاق. +ولكن مع تطورها ، أصبحت جافا سكريبت لغة مستقلة تمامًا مع مواصفاتها الخاصة التي تسمى [إكماسكربت](http://ar.wikipedia.org/wiki/إي_سي_إم_ايه_سكريبت) ، والآن لا علاقة لها بجافا على الإطلاق. ``` -اليوم، يمكن تنفيذ جافاسكريبت ليس فقط في المتصفح، ولكن أيضًا على الخادم، أو فعليًا على أي جهاز به برنامج خاص يسمى [محرك جافاسكريبت](https://ar.wikipedia.org/wiki/محرك_جافا_سكريبت). +اليوم، يمكن تنفيذ جافا سكريبت ليس فقط في المتصفح، ولكن أيضًا على الخادم، أو فعليًا على أي جهاز به برنامج خاص يسمى [محرك جافا سكريبت](https://ar.wikipedia.org/wiki/محرك_جافا_سكريبت). -يحتوي المتصفح على محرك مثبت يسمى أحيانًا "آلة جافاسكريبت الافتراضية". +يحتوي المتصفح على محرك مثبت يسمى أحيانًا "آلة جافا سكريبت الافتراضية". المحركات المختلفة لها "أسماء رمزية" مختلفة. على سبيل المثال: @@ -43,16 +43,16 @@ يطبق المحرك التحسينات في كل خطوة من العملية. حتى أنه يراقب النص المترجم أثناء تشغيله ، ويحلل البيانات التي تتدفق من خلاله ، ويزيد من تحسين رموز الآلة بناءً على تلك المعرفة. ``` -## ما الذي يمكن أن يفعله الجافاسكريبت في المتصفح؟ +## ما الذي يمكن أن يفعله جافا سكريبت في المتصفح؟ -الجافاسكريبت الحديثة هي لغة برمجة "آمنة". لا توفر وصولاً منخفض المستوى إلى الذاكرة أو وحدة المعالجة المركزية، لأنه تم إنشاؤها في البداية للمتصفحات التي لا تتطلب ذلك. +جافا سكريبت الحديثة هي لغة برمجة "آمنة". لا توفر وصولاً منخفض المستوى إلى الذاكرة أو وحدة المعالجة المركزية، لأنه تم إنشاؤها في البداية للمتصفحات التي لا تتطلب ذلك. تعتمد قدرات جافا سكريبت بشكل كبير على البيئة التي تعمل بها. على سبيل المثال ، يدعم [نود.جي إس](https://ar.wikipedia.org/wiki/نود.جي_إس) الوظائف التي تسمح لجافا سكريبت بقراءة / كتابة ملفات عشوائية ، وتنفيذ طلبات الشبكة، إلخ. -يمكن للجافاسكريبت في المتصفح القيام بكل ما يتعلق بمعالجة صفحات الويب والتفاعل مع المستخدم وخادم الويب. +يمكن لجافا سكريبت في المتصفح القيام بكل ما يتعلق بمعالجة صفحات الويب والتفاعل مع المستخدم وخادم الويب. -على سبيل المثال ، يمكن للجافاسكريبت في المتصفح: +على سبيل المثال ، يمكن لجافا سكريبت في المتصفح: - إضافة HTML جديد إلى الصفحة ، وتغيير المحتوى الحالي ، وتعديل التصاميم. - الرد على تفاعلات المستخدم ، والتشغيل على نقرات الفأرة ، وحركات المؤشر ، والضغط على المفاتيح. @@ -60,31 +60,31 @@ - الحصول على ملفات تعريف الارتباط وتعيينها ، وطرح الأسئلة على الزائر ، وإظهار الرسائل. - تذكر البيانات الموجودة على جانب العميل ("التخزين المحلي"). -## ما الذي لا يمكن للجافاسكريبت في المتصفح فعله؟ +## ما الذي لا يمكن لجافا سكريبت في المتصفح فعله؟ -إمكانيات الجافاسكريبت في المتصفح محدودة من أجل سلامة المستخدم. الهدف هو منع صفحة ويب شريرة من الوصول إلى المعلومات الخاصة أو الإضرار ببيانات المستخدم. +إمكانيات جافا سكريبت في المتصفح محدودة من أجل سلامة المستخدم. الهدف هو منع صفحة ويب شريرة من الوصول إلى المعلومات الخاصة أو الإضرار ببيانات المستخدم. من أمثلة هذه القيود: -- الجافاسكريبت على صفحة الويب قد لا تقرأ/تكتب ملفات عشوائية على القرص الصلب أو تنسخها أو تنفذ برامج. ليس لديها وصول مباشر إلى وظائف نظام التشغيل. +- جافا سكريبت على صفحة الويب قد لا تقرأ/تكتب ملفات عشوائية على القرص الصلب أو تنسخها أو تنفذ برامج. ليس لديها وصول مباشر إلى وظائف نظام التشغيل. تسمح المتصفحات الحديثة له بالعمل مع الملفات ، ولكن الوصول محدود ويتم توفيره فقط إذا قام المستخدم بإجراءات معينة ، مثل "إسقاط" ملف في نافذة المتصفح أو تحديده عبر علامة ``. - هناك طرق للتفاعل مع الكاميرا / الميكروفون والأجهزة الأخرى ، لكنها تتطلب إذنًا صريحًا من المستخدم. لذلك قد لا تعمل الصفحة التي تم تمكين الجافاسكريبت فيها بشكل خفي على تمكين كاميرا الويب ومراقبة المناطق المحيطة وإرسال المعلومات إلى [آن آس أيه](https://ar.wikipedia.org/wiki/وكالة_الأمن_القومي_الأمريكية) --بشكل عام لا تعرف علامات التبويب / النوافذ المختلفة حول بعضها البعض. في بعض الأحيان يفعلون ذلك، على سبيل المثال عندما تستخدم إحدى النوافذ الجافاسكريبت لفتح النافذة الأخرى. ولكن حتى في هذه الحالة ، قد لا تتمكن الجافاسكريبت في إحدى الصفحات من الوصول إلى الصفحة الأخرى إذا كانت تأتي من مواقع مختلفة (من مجال أو بروتوكول أو منفذ مختلف). + هناك طرق للتفاعل مع الكاميرا / الميكروفون والأجهزة الأخرى ، لكنها تتطلب إذنًا صريحًا من المستخدم. لذلك قد لا تعمل الصفحة التي تم تمكين جافا سكريبت فيها بشكل خفي على تمكين كاميرا الويب ومراقبة المناطق المحيطة وإرسال المعلومات إلى [آن آس أيه](https://ar.wikipedia.org/wiki/وكالة_الأمن_القومي_الأمريكية) +-بشكل عام لا تعرف علامات التبويب / النوافذ المختلفة حول بعضها البعض. في بعض الأحيان يفعلون ذلك، على سبيل المثال عندما تستخدم إحدى النوافذ جافا سكريبت لفتح النافذة الأخرى. ولكن حتى في هذه الحالة ، قد لا تتمكن جافا سكريبت في إحدى الصفحات من الوصول إلى الصفحة الأخرى إذا كانت تأتي من مواقع مختلفة (من مجال أو بروتوكول أو منفذ مختلف). - وهذا ما يسمى "سياسة المصدر الأوحد". للتغلب على ذلك ، يجب أن توافق *الصفحتان* على تبادل البيانات وتحتوي على كود جافاسكريبت خاص يتعامل معه. سنغطي ذلك في البرنامج التعليمي. + وهذا ما يسمى "سياسة المصدر الأوحد". للتغلب على ذلك ، يجب أن توافق *الصفحتان* على تبادل البيانات وتحتوي على كود جافا سكريبت خاص يتعامل معه. سنغطي ذلك في البرنامج التعليمي. هذا القيد ، مرة أخرى ، لسلامة المستخدم. يجب ألا تتمكن صفحة من `http://anysite.com` فتحها المستخدم من الوصول إلى نافذة متصفح أخرى بعنوان `http://gmail.com` وسرقة المعلومات من هناك. -- يمكن لـ جافاسكريبت الاتصال بسهولة عبر الشبكة بالخادم الذي جاءت منه الصفحة الحالية. لكن قدرته على تلقي البيانات من المواقع / المجالات الأخرى معطلة. على الرغم من إمكانية ذلك، إلا أنه يتطلب موافقة صريحة (معبرًا عنها في رؤوس HTTP) عن بعد. مرة أخرى ، هذا قيد أمان. +- يمكن لـ جافا سكريبت الاتصال بسهولة عبر الشبكة بالخادم الذي جاءت منه الصفحة الحالية. لكن قدرته على تلقي البيانات من المواقع / المجالات الأخرى معطلة. على الرغم من إمكانية ذلك، إلا أنه يتطلب موافقة صريحة (معبرًا عنها في رؤوس HTTP) عن بعد. مرة أخرى ، هذا قيد أمان. ![](limitations.svg) -لا توجد مثل هذه الحدود إذا تم استخدام الجافاسكريبت خارج المتصفح ، على سبيل المثال على الخادم. تسمح المتصفحات الحديثة أيضًا الإضافات التي قد تطلب تصريحات ممتدة. +لا توجد مثل هذه الحدود إذا تم استخدام جافا سكريبت خارج المتصفح ، على سبيل المثال على الخادم. تسمح المتصفحات الحديثة أيضًا الإضافات التي قد تطلب تصريحات ممتدة. -## ما الذي يجعل الجافاسكريبت فريدًا؟ +## ما الذي يجعل جافا سكريبت فريدًا؟ -هناك على الأقل *ثلاثة* أشياء رائعة حول الجافاسكريبت: +هناك على الأقل *ثلاثة* أشياء رائعة حول جافا سكريبت: ```compare + تكامل تام مع HTML / CSS. @@ -92,19 +92,19 @@ + مدعوم من قبل جميع المتصفحات الرائدة وتمكينه تلقائيا. ``` -الجافاسكريبت هي تقنية المتصفح الوحيدة التي تجمع بين هذه الأشياء الثلاثة. +جافا سكريبت هي تقنية المتصفح الوحيدة التي تجمع بين هذه الأشياء الثلاثة. -هذا ما يجعل الجافاسكريبت فريدًا. هذا هو السبب في أنها الأداة الأكثر انتشارًا لإنشاء واجهات المتصفح. +هذا ما يجعل جافا سكريبت فريدًا. هذا هو السبب في أنها الأداة الأكثر انتشارًا لإنشاء واجهات المتصفح. -ومع ذلك، تسمح الجافاسكريبت أيضًا بإنشاء خوادم وتطبيقات الجوال، إلخ. +ومع ذلك، تسمح جافا سكريبت أيضًا بإنشاء خوادم وتطبيقات الجوال، إلخ. -## لغات "فوق" الجافاسكريبت +## لغات "فوق" جافا سكريبت -لا تتناسب القواعد اللغوية للجافاسكريبت مع احتياجات الجميع. الناس المختلفون يريدون ميزات مختلفة. +لا تتناسب القواعد اللغوية لجافا سكريبت مع احتياجات الجميع. الناس المختلفون يريدون ميزات مختلفة. هذا أمر متوقع ، لأن المشاريع والمتطلبات تختلف من شخص لآخر. -ظهرت في الآونة الأخيرة عدد كبير من اللغات الجديدة ، والتي *تم تحويلها* إلى الجافاسكريبت قبل تشغيلها في المتصفح. +ظهرت في الآونة الأخيرة عدد كبير من اللغات الجديدة ، والتي *تم تحويلها* إلى جافا سكريبت قبل تشغيلها في المتصفح. الأدوات الحديثة تجعل الترجمة سريعة وشفافة للغاية ، مما يسمح للمطورين في الواقع بالتشفير بلغة أخرى وتحويلها تلقائيًا "خلف الكواليس". @@ -113,12 +113,12 @@ - [كوفي سكريبت](http://coffeescript.org/) هو "سكر نحوي" لجافا سكريبت. إنه يقدم بناء جمل أقصر ، مما يسمح لنا بكتابة كود أكثر وضوحًا ودقة. عادة ،مطورو الروبي يحبونها. - يركز [تايب سكريبت](http://www.typescriptlang.org/) على إضافة "كتابة بيانات صارمة" لتبسيط تطوير ودعم الأنظمة المعقدة. تم تطويره بواسطة ميكروسوفت. - يضيف [فلاو](http://flow.org/) أيضًا كتابة البيانات ، ولكن بطريقة مختلفة. تم تطويره بواسطة فايسبوك. -- [دارت](https://www.dartlang.org/) هي لغة قائمة بذاتها لها محركها الخاص الذي يعمل في بيئات غير المتصفح (مثل تطبيقات الهاتف المحمول) ، ولكن يمكن أيضًا تحويلها إلى جافاسكريبت. من تطوير جوجل. +- [دارت](https://www.dartlang.org/) هي لغة قائمة بذاتها لها محركها الخاص الذي يعمل في بيئات غير المتصفح (مثل تطبيقات الهاتف المحمول) ، ولكن يمكن أيضًا تحويلها إلى جافا سكريبت. من تطوير جوجل. -هناك أكثر. بالطبع ، حتى لو استخدمنا إحدى اللغات المترجمة ، يجب أن نعرف أيضًا جافاسكريبت لفهم ما نقوم به حقًا. +هناك أكثر. بالطبع ، حتى لو استخدمنا إحدى اللغات المترجمة ، يجب أن نعرف أيضًا جافا سكريبت لفهم ما نقوم به حقًا. ## ملخص -- تم إنشاء الجافاسكريبت في البداية كلغة للمتصفح فقط ، ولكنها تُستخدم الآن في العديد من البيئات الأخرى أيضًا. -- تتمتع جافاسكريبت اليوم بمكانة فريدة باعتبارها لغة المتصفح الأكثر استخدامًا مع تكاملها التام مع HTML / CSS. -- هناك العديد من اللغات التي يتم "تحويلها" إلى الجافاسكريبت وتوفر ميزات معينة. يوصى بإلقاء نظرة عليهم ، على الأقل لفترة وجيزة ، بعد إتقان الجافاسكريبت. +- تم إنشاء جافا سكريبت في البداية كلغة للمتصفح فقط ، ولكنها تُستخدم الآن في العديد من البيئات الأخرى أيضًا. +- تتمتع جافا سكريبت اليوم بمكانة فريدة باعتبارها لغة المتصفح الأكثر استخدامًا مع تكاملها التام مع HTML / CSS. +- هناك العديد من اللغات التي يتم "تحويلها" إلى جافا سكريبت وتوفر ميزات معينة. يوصى بإلقاء نظرة عليهم ، على الأقل لفترة وجيزة ، بعد إتقان جافا سكريبت. diff --git a/1-js/01-getting-started/2-manuals-specifications/article.md b/1-js/01-getting-started/2-manuals-specifications/article.md index 12850480d..765858116 100644 --- a/1-js/01-getting-started/2-manuals-specifications/article.md +++ b/1-js/01-getting-started/2-manuals-specifications/article.md @@ -4,7 +4,7 @@ ## الوصف -[وصف The ECMA-262](https://www.ecma-international.org/publications/standards/Ecma-262.htm) يحتوي على المعلومات الأكثر عمقاً وتفصيلاً ورسميةً عن جافاسكريبت. وهي تقوم بتعريف اللغة. +[وصف The ECMA-262](https://www.ecma-international.org/publications/standards/Ecma-262.htm) يحتوي على المعلومات الأكثر عمقاً وتفصيلاً ورسميةً عن جافا سكريبت. وهي تقوم بتعريف اللغة. و لكن كونها بهذه الرسمية، تجعل فهمها من أول مرة صعبا. لذلك إذا كنت تريد مصدر المعلومى الأكثر وثوقاً عن تفاصيل اللغة، الوصف هو المكان الصحيح. لكنها ليست للإستعمال اليومي. @@ -22,13 +22,13 @@ أيضاً، غالباً ما يكون من الأفضل استخدام البحث عبر الإنترنت بدلاً من ذلك. فقط استخدم "[مصطلح] MDN" للإستعلام، مثال لتبحث عن دالة `parseInt`. -* **MSDN** – مراجع ميكروسوفت يوجد بها معلومات كثيرة، متضمنة جافاسكريبت (غالباً يشار إليها JScript). إذا كنت تريد شيئا أكثر تخصصا عن انترنت اكسبلورر، من الأفضل الذهاب إلى: . +* **MSDN** – مراجع ميكروسوفت يوجد بها معلومات كثيرة، متضمنة جافا سكريبت (غالباً يشار إليها JScript). إذا كنت تريد شيئا أكثر تخصصا عن انترنت اكسبلورر، من الأفضل الذهاب إلى: . أيضاً، يمكن غن نستخدم بحث الإنترنت بعبارات مثل "RegExp MSDN" or "RegExp MSDN jscript". ## جدول التوافق -جافاسكريبت لغة فى سياق متطور، تضاف إليها خصائص جديدة بانتظام. +جافا سكريبت لغة فى سياق متطور، تضاف إليها خصائص جديدة بانتظام. لتَّـحَقّـق من الدعم ما بين المتصفحات والمحركات الأخرى، انظر: diff --git a/1-js/01-getting-started/3-code-editors/article.md b/1-js/01-getting-started/3-code-editors/article.md index 96c35ab76..43b7fdba8 100644 --- a/1-js/01-getting-started/3-code-editors/article.md +++ b/1-js/01-getting-started/3-code-editors/article.md @@ -15,7 +15,7 @@ - [فيجوال ستديو كود](https://code.visualstudio.com/) (يعمل على أكثر من نظام تشغيل، مجاني). - [ويب ستورم](http://www.jetbrains.com/webstorm/) (يعمل على أكثر من نظام تشغيل، مدفوع). -بالنسبة للويندوز، يمكن استخدام برنامج فيجوال ستديو، لايجب الخلط بينه وبين الفيجوال ستديو كود، فيجوال ستديو هو محرر مدفوع يعمل على نظام ويندوز فقط، ومناسب تماماً لبيئة الـ.NET. أنه أيضاً جيد للجافاسكريبت. كما يوجد إصدار مجاني منه [Visual Studio Community](https://www.visualstudio.com/vs/community/). +بالنسبة للويندوز، يمكن استخدام برنامج فيجوال ستديو، لايجب الخلط بينه وبين الفيجوال ستديو كود، فيجوال ستديو هو محرر مدفوع يعمل على نظام ويندوز فقط، ومناسب تماماً لبيئة الـ.NET. أنه أيضاً جيد لجافا سكريبت. كما يوجد إصدار مجاني منه [Visual Studio Community](https://www.visualstudio.com/vs/community/). عادة ما تكون تكلفتها ضئيلة للغاية مقارنة براتب المطور المؤهل، لذلك فقط اختر الأفضل بالنسبة لك. العديد من بيئات التطوير مدفوعة، لكن لها فترة سماحية. diff --git a/1-js/02-first-steps/01-hello-world/article.md b/1-js/02-first-steps/01-hello-world/article.md index c23e69584..c414004ce 100644 --- a/1-js/02-first-steps/01-hello-world/article.md +++ b/1-js/02-first-steps/01-hello-world/article.md @@ -1,15 +1,15 @@ # أهلاً، بالعالم! -هذا الجزء من البرنامج التعليمي عن أساسيات لغة الجافا سكريبت، اللغة نفسها. +هذا الجزء من البرنامج التعليمي عن أساسيات لغة جافا سكريبت، اللغة نفسها. -لكن نحتاج إلى بيئة عمل من أجل تشغيل النصوص الخاصة بنا، وبما أن هذا الكتاب عبر الانترنت، لذافإن المتصفح خيار جيد. سوف نقوم بالاحتفاظ بالأوامر الخاصة بالمتصفح (مثل `alert`) للحد الأدنى بحيث لا تقضي وقتًا عليها إذا كنت تخطط للتركيز على بيئة أخرى (مثل Node.js). سوف نركز على الجافا سكريبت في المتصفح [الجزء التالي](/ui) من البرنامج التعليمي. +لكن نحتاج إلى بيئة عمل من أجل تشغيل النصوص الخاصة بنا، وبما أن هذا الكتاب عبر الانترنت، لذافإن المتصفح خيار جيد. سوف نقوم بالاحتفاظ بالأوامر الخاصة بالمتصفح (مثل `alert`) للحد الأدنى بحيث لا تقضي وقتًا عليها إذا كنت تخطط للتركيز على بيئة أخرى (مثل Node.js). سوف نركز على جافا سكريبت في المتصفح [الجزء التالي](/ui) من البرنامج التعليمي. لذا أولاً، دعونا نرفق نصا برمجيا في صفحة الويب. بالنسبة للبيئات التي تعمل على الخوادم (مثل Node.js)، يمكنك تنفيذها من خلال استخدام أمر مثل `"node my.js"`. ## الوسم "script" -يمكن وضع برامج الجافاسكريبت في أي جزء في مستند HTML باستخدام وسم ` ``` - لا يتم استخدام هذه الخدعة في الجافاسكريبت الحديثة. تخفي هذه التعليقات شفرات الجافاسكريبت في المتصفحات القديمة التي لاتعرف كيفية عمل معالجة للوسم ``. diff --git a/1-js/02-first-steps/04-variables/article.md b/1-js/02-first-steps/04-variables/article.md index cf1687e9c..89d21f287 100644 --- a/1-js/02-first-steps/04-variables/article.md +++ b/1-js/02-first-steps/04-variables/article.md @@ -1,6 +1,6 @@ # المتغيرات -:معظم الوقت, تطبيق الجافاسكربت يحتاج للعمل مع معلومات. يوجد هنا مثالان +:معظم الوقت, تطبيق جافا سكريبت يحتاج للعمل مع معلومات. يوجد هنا مثالان 1. متجر علي الانترنت -- المعلومات قد تتضمن السلع التي يتم بيعها و عربة التسوق 2. تطبيق دردشه -- المعلومات قد تتضمن المستخدمين والرسائل والمزيد @@ -10,7 +10,7 @@ [المتغير](https://en.wikipedia.org/wiki/Variable_(computer_science)) "يُسمي مخزن" للبيانات. نحن نستطيع استخدام المتغيرات لتخزين السلع والزائرين والبيانات الاخري -لأنشاء متغير في الجافاسكربت, نستخدم الكلمه +لأنشاء متغير في جافا سكريبت, نستخدم الكلمه `let` الجمله بالاسفل تُنشئ (بعباره اخري: *تعلن*) متغير يأخذ اسم "message" @@ -159,7 +159,7 @@ So, we should declare a variable once and then refer to it without `let`. ## تسمية المتغير [#variable-naming] -هناك طريقتان فقط لتسمية المتغير في الجافاسكربت +هناك طريقتان فقط لتسمية المتغير في جافا سكريبت 1. يجب أن يحتوي الاسم على أحرف أو أرقام أو الرموز `$` و` _` فقط. 2. الحرف الاول من الاسم يجب ألا يكون رقم. diff --git a/1-js/02-first-steps/05-types/article.md b/1-js/02-first-steps/05-types/article.md index 57af1ae1b..eab892086 100644 --- a/1-js/02-first-steps/05-types/article.md +++ b/1-js/02-first-steps/05-types/article.md @@ -2,7 +2,7 @@ القيمة في جافا سكربت دائما تكون من نوع معين . على سبيل المثال نص أو رقم. -توجد 8 أنواع بيانات أساسية في الجافا سكربت . هنا سوف نغطيهم بشكل عام وفي الفصول القادمة سنتكلم عن كل نوع بالتفصيل. +توجد 8 أنواع بيانات أساسية في جافا سكريبت . هنا سوف نغطيهم بشكل عام وفي الفصول القادمة سنتكلم عن كل نوع بالتفصيل. نستطيع أن نضع أي نوع في متغير . على سبيل المثال المتغير قد يكون في لحظة ما نص ثم يتم تخزين رقم فيه: @@ -12,7 +12,7 @@ let message = "hello"; message = 123456; ``` -لغات البرمجة التي تسمح بذلك مثل الجافا سكربت يطلق عليها +لغات البرمجة التي تسمح بذلك مثل جافا سكريبت يطلق عليها "dynamically typed" يعني أنه يوجد أنواع بيانات محددة لكن المتغيرات غير مقيدة بهم . ## Number @@ -67,7 +67,7 @@ n = 12.345; ## BigInt -في الجافا سكربت، النوع "رقم" لا يمثل الأعداد الصحيحة أكبر من (253-1) ( `9007199254740991`)، أو أقل من -(-253-1) للأرقام السالبة. إنها قيود فنية ناتجة عن تمثيلهم الداخلي. +في جافا سكريبت، النوع "رقم" لا يمثل الأعداد الصحيحة أكبر من (253-1) ( `9007199254740991`)، أو أقل من -(-253-1) للأرقام السالبة. إنها قيود فنية ناتجة عن تمثيلهم الداخلي. لمعظم الأغراض هذا يكفي، لكن في بعض الأحيان نحتاج لأرقام كبيرة حقاً ، على سبيل المثال. للتشفير أو الطوابع الزمنية الدقيقة للميكرو ثانية. @@ -88,7 +88,7 @@ const bigInt = 1234567890123456789012345678901234567890n; ## String -النص في الجافا سكربت يتم إحاطته بعلامات تنصيص. +النص في جافا سكريبت يتم إحاطته بعلامات تنصيص. ```js let str = "Hello"; @@ -102,7 +102,7 @@ In JavaScript, there are 3 types of quotes. 2. علامات التنصيص المفردة: `'Hello'`. 3. الباك تيك: `Hello`. -علامات التنصيص المزدوجة والمفردة هما علامات تنصيص "بسيطة" . عملياً لا يوجد بينهم فرق في الجافا سكربت. +علامات التنصيص المزدوجة والمفردة هما علامات تنصيص "بسيطة" . عملياً لا يوجد بينهم فرق في جافا سكريبت. الباك تيك عبارة عن علامات تنصيص "ممتدة وظيفياً" . تسمح لنا بتضمين متغيرات وتعبيرات داخل النص عن طريق إحاطتهم ب `${…}`، على سبيل المثال: @@ -128,7 +128,7 @@ alert( "the result is ${1 + 2}" ); // the result is ${1 + 2} (علامات ال ```smart header="لا يوجد نوع *character* ." في بعض اللغات، يوجد نوع خاص "character" يعبر عن الحرف الواحد. For example,على سبيل المثال، في لغة سي وجافا يدعى "char". -في الجافا سكربت، لا يوجد مثل هذا النوع. يوجد نوع واحد فقط: `string`. النص قد يتكون من حرف واحد أو أكثر. +في جافا سكريبت، لا يوجد مثل هذا النوع. يوجد نوع واحد فقط: `string`. النص قد يتكون من حرف واحد أو أكثر. ``` ## Boolean (logical type) @@ -164,7 +164,7 @@ alert( isGreater ); // نعم (نتيجة المقارنة هي "نعم") let age = null; ``` -في الجافا سكربت ، `null` ليست "مرجع لكائن غير موجود" أو "null pointer" مثل الموجود في لغات أخرى. +في جافا سكريبت ، `null` ليست "مرجع لكائن غير موجود" أو "null pointer" مثل الموجود في لغات أخرى. إنها مجرد قيمة خاصة تعبر عن "لا شئ" أو "فارغ" أو "قيمة غير معروفة". @@ -250,7 +250,7 @@ typeof alert // "function" (3) 1. `Math` كائن مدمج داخلياً لتدعيم العمليات الرياضية. سنتعلمه في الفصل . هنا، يخدم فقط كمثال للكائن. 2. نتيجة `typeof null` هي `"object"`. هذا رسمياً يعتبر خطأ في سلوك `typeof` ، يأتي من الأيام الأولى لجافا سكربت وتم الحفاظ عليه من أجل التوافقية. قطعاً `null` ليس كائن. إنه قيمة خاصة بنوع منفصل خاص. -3. نتيجة `typeof alert` هي `"function"`، لأن `alert` دالة. سندرس الدوال في الفصول القادمة وهناك سنرى أنه لا توجد نوع خاص "دالة" في جافا سكربت. الدوال الدوال تنتمي للنوع كائن. لكن `typeof` تعاملهم بشكل مختلف، يرجع `"دالة"`. هذا أيضاً يأتي من الأيام الأولى للجافا سكربت. فنياً، مثل هذا السلوك غير صحيح، لكن قد يكون ملائم في الممارسة. +3. نتيجة `typeof alert` هي `"function"`، لأن `alert` دالة. سندرس الدوال في الفصول القادمة وهناك سنرى أنه لا توجد نوع خاص "دالة" في جافا سكربت. الدوال الدوال تنتمي للنوع كائن. لكن `typeof` تعاملهم بشكل مختلف، يرجع `"دالة"`. هذا أيضاً يأتي من الأيام الأولى لجافا سكربت. فنياً، مثل هذا السلوك غير صحيح، لكن قد يكون ملائم في الممارسة. ## خلاصة diff --git a/1-js/02-first-steps/07-type-conversions/article.md b/1-js/02-first-steps/07-type-conversions/article.md index d274c177a..1e0807856 100644 --- a/1-js/02-first-steps/07-type-conversions/article.md +++ b/1-js/02-first-steps/07-type-conversions/article.md @@ -107,7 +107,7 @@ alert( Boolean("") ); // false ``` ````warn header="من فضلك لاحظ: النص المكون من صفر `\"0\"` يكون `true`" -بعض اللغات (أعني PHP) تعامل `"0"` على أنه `false`. لكن في الجافاسكربت، النص غير الفارغ دائماً `true`. +بعض اللغات (أعني PHP) تعامل `"0"` على أنه `false`. لكن في جافا سكريبت، النص غير الفارغ دائماً `true`. ```js run alert( Boolean("0") ); // true @@ -147,4 +147,4 @@ alert( Boolean(" ") ); // المسافات، أيضاً true (أي نص غير - `undefined` تكون `NaN` كرقم ليست `0`. - `"0"` والنصوص التي تحتوي على مسافات فقط `" "` هي true كقيمة منطقية. -لم يتم تغطية الكائنات هنا. سنعود إليهم لاحقاً في هذا الفصل تكون مكرسة حصرياً للكائنات بعد أن تعمل أشياء أساسية أكثر عن الجافا سكربت . +لم يتم تغطية الكائنات هنا. سنعود إليهم لاحقاً في هذا الفصل تكون مكرسة حصرياً للكائنات بعد أن تعمل أشياء أساسية أكثر عن جافا سكريبت . diff --git a/1-js/02-first-steps/08-operators/article.md b/1-js/02-first-steps/08-operators/article.md index 0462a4a09..4099525aa 100644 --- a/1-js/02-first-steps/08-operators/article.md +++ b/1-js/02-first-steps/08-operators/article.md @@ -2,7 +2,7 @@ نعرف الكتير من المعاملات الحسابية من التعليم الأساسي في المدارس مثل عامل الإضافة '+' , والضرب '*' والطرح '-' وخلافه -في هذا الفصل سنبدأ بالعاملات الحسابية البسيطة ثم سنركز على النواحي المحددة بالنسبة للغة جافاسكريبت والتي لم يتم تغطيتها برياضيات الحساب في المدرسة +في هذا الفصل سنبدأ بالعاملات الحسابية البسيطة ثم سنركز على النواحي المحددة بالنسبة للغة جافا سكريبت والتي لم يتم تغطيتها برياضيات الحساب في المدرسة #مصطلحات: أحادي، ثنائي ، ومعامل @@ -77,7 +77,7 @@ alert( 8 ** (1/3) ); // 2 (power of 1/3 is the same as a cubic root) ## إضافة الكلمات وسلاسل الحروف بعامل الإضافة + -هيا نتعرف على مميزات عوامل اللغة جافاسكريبت والتي تتجاوز الحساب المدرسي +هيا نتعرف على مميزات عوامل اللغة جافا سكريبت والتي تتجاوز الحساب المدرسي عادة، عامل الإضافة "+" يقوم بجمع الأرقام diff --git a/1-js/02-first-steps/10-ifelse/2-check-standard/ifelse_task2/index.html b/1-js/02-first-steps/10-ifelse/2-check-standard/ifelse_task2/index.html index 226d87b06..2ab7c31cf 100644 --- a/1-js/02-first-steps/10-ifelse/2-check-standard/ifelse_task2/index.html +++ b/1-js/02-first-steps/10-ifelse/2-check-standard/ifelse_task2/index.html @@ -5,7 +5,7 @@