JS (Part 1)
JS (Part 1)
تمهيد :
JavaScript هً لغة برمجة خفٌفة ومفسرة تسمح لن ببناء التفاعلٌة فً صفحات HTMLثابتة وهً
مصممة إلنشاء تطبٌمات تتمحور حول الشبكة .وهً مجانٌة ومتكاملة مع جافا .من السهل جدًا تنفٌذ
JavaScriptألنها لغة مدمجة مع لغة .HTMLوهى لغة مفتوحة ومنصة مشتركة
ٌ مكن استخدام JavaScriptفً اعتراض األحداث التً ٌدٌرها المستخدم user-initiated
eventsمثل النمرات على األزرار clicksومالحة الرابط link navigationواإلجراءات
األخرى التً ٌستخدمها المستخدم صراحةً أو ضمنًٌا.
: Advantages of JavaScript مميزات لغة JavaScript
: Less server interactionتفاعلها قليل مع الخادم server
ٌمكنن التحمك من صحة إدخال المستخدم لبل إرسال الصفحة إلى الخادم .وهذا ٌملل حركة مرور
الخادم ،مما ٌعنً تحمٌل ألل على الخادم الخاص بن.
: Immediate feedback to the visitorsذات رد فعلى سريع مع المستخدمين
ال ٌتعٌن علٌهم انتظار إعادة تحمٌل الصفحة لمعرفة ما إذا كانوا لد نسٌوا إدخال شًء ما.
: Increased interactivityسريعة التفاعل
ٌمكنن إنشاء واجهات تتفاعل عندما ٌمرر المستخدم فولها بالماوس أو ٌنشطها عبر لوحة المفاتٌح
: Richer interfacesلها واجهات كثيرة
ٌمكنن استخدام JavaScriptلتضمٌن عناصر مثل مكونات السحب واإلفالت drag-and-drop
وشرائح التمرٌر slidersلمنح واجهة غنٌة لزوار مولعن
ٌ -2مكنن وضع ، >script< tagsالتً تحتوي على أكواد الجافا سكرٌبت ،فً أي مكان داخل
صفحة الوٌب الخاصة بن ،ولكن من المستحسن عادة أن تحتفظ بها .>head< tags
ٌ -3موم >script< tagبتنبٌه برنامج المستعرض لبدء ترجمة كل النص بٌن هذه العالمات كبرنامج
نصً . script
ٌ -4جب أن نحٌط أكود javascriptب )<!--….--//> ( comment tagحٌث هذا التعلٌك ٌحفظ
أكواد javascriptمن المتصفحات التى ال تدعم لغة ، javascriptونالحظ ان لغة javascript
ال تتعرف سوى على ) open tag ( <!--بٌنما ال تتعرف على )> close tag (--لذلن نستخدم
تعلٌك خاص بلغة javascriptوهو عبارة عن )(//
ٌ : script tag ستخدم هذا tagلكتابة أكواد HTMLبداخله ،وٌحتوى على خاصٌتٌن هما :
: language attributeتستخدم هذه الخاصٌة لتحدٌد لغة البرمجة او لغة الخاصة script
الذى سوف نستخدمه وٌجب تعٌٌن لٌمته إلى " "javascriptكما فى الصورة السابمة
: type attributeتستخدم هذه الخاصٌة لإلشارة إلى لغة البرمجة المستخدمة ،وٌجب
تعٌٌن لٌمته إلى " " text / javascriptكما فى الصورة السابمة
مثال أول برنامج بلغة javascript
عند فتح المتصفح نالحظ أن هذا الكود سوف ٌطبع كلمة " "Hello Mahmoudداخل الصفحة
مثال :فى المثال التالى نالحظ أنه ٌمكن استخدام سطر جدٌدة فارغة
ٌ مكنن استخدام الفاصلة المنموطة ) ; ( semicolonبعد نهاٌة كل سطر وٌمكنن عدم استخدامهم
ولكن عندما ترٌد أن تكتب أكثر من جملة statementفى سطر واحد ٌجب استخدام الفاصلة
المنموطة ) ; ( semicolon
In the "Javascript" section, select "Do not allow any site to run JavaScript" or
"Allow all sites to run JavaScript (recommended)
To disable JavaScript support in your Opera, you should not select the Enable
JavaScript checkbox
: Warning for Non-JavaScript Browsers تحذٌر عند استخدام المتصفحات التى ال
تدعم لغة javascript
إذا كان علٌن المٌام بشًء مهم باستخدام ، JavaScriptفٌمكنن عرض رسالة تحذٌر للمستخدم
باستخدام عالمات <.>noscript
ٌ : >noscript< Tag تم استخدام هذا tagلعرض رسالة للمستخدم عندما ال ٌدعم المتصفح الخاص
به لغة javascript
مثال
فى المثال السابك إذا كان متصفح المستخدم ال ٌدعم لغة javascriptأو لم ٌتم تفعٌل لغة
، javascriptفسٌتم عرض الرسالة الموجودة داخل >noscript /< tag
: Placement in HTML File أماكن كتابة أكواد javascriptداخل مستند HTML
ٌمكنن بسهولة كتابة أكواد javascriptداخل أى مكان فى ملف HTMLولكن أكثر الطرق استخداما ً
هى الطرق اآلتٌة :
فى المثال السابك سوف ٌتم عرض buttonعلى الشاشة ومكتوب علٌه ""Say Hello
عند الضغط على هذا buttonفسوف تظهر رسالة تعرض جملة " "Hello Worldكاآلتى :
ٌ :<body> section -2مكن كتابة scriptبداخل <head> tag
إذا كنت تحتاج إلى نص برمجً لٌتم تشغٌله أثناء تحمٌل الصفحة بحٌث ٌموم البرنامج النصً بإنشاء
محتوى فً الصفحة ،فسٌنتمل النص البرمجً فً الجزء < >bodyمن المستند .فً هذه الحالة ،
لن ٌكون لدٌن أي وظٌفة محددة باستخدام .JavaScript
مثال :
الحظ الناتج
ٌ -3مكن كتابة scriptبداخل <head> tagوأٌضا ً <body> tagمعا ً
مثال :
فى المثال السابك سوف ٌتم عرض buttonعلى الشاشة ومكتوب علٌه ""Say Hello
عند الضغط على هذا buttonفسوف تظهر رسالة تعرض جملة " "Hello Worldكاآلتى :
ٌ : external file -4مكن كتابة scriptداخل ملف خارجى ثم نشٌر إلى الملف ونحدد مساره داخل
<head> section
أوال :نفتح ملف جدٌد باسم myjavascriptوٌنتهى بامتداد js
ثانٌا ً :نكتب أكواد javascriptداخل هذا الملف
ثالثا ً :نشٌر أو نشٌف هذا الملف داخل مستند HTML
مثال :
الخطوة األولى :فتحنا ملف جدٌد وكتبنا كود javascript
الخطوة الثانٌة :نستدعى هذا الملف أو نشٌر الٌه داخل المستند عن طرٌك استخدام الخاصٌة src
الحظ النتٌجة
هذه الطرٌمة مهمة جدا ً ألنها تساعد على تنظٌم الكود حتى ٌتثنى لنا اٌجاد األخطاء بسهولة وتساعد
على لراءة االكواد بسهولة وأٌضا ً تعمل على عمل استخدام للكود فى اى مستند آخر او ما ٌسمى ب
reusing
انذسس انثانج :انمتغيشاث )(variable
: JavaScript Datatypes انواع البيانات التى تدعملها javascript
هى عبارة عن أنواع البٌانات التى تدعملها لغة البرمجة ،وهى من الواحدات األساسٌة الموجودة فى
لغات البرمجة
لغة javascriptتدعم 3أنواع فقط هم :
: Numbers -5هى عبارة عن المٌم الرلمٌة وتنمسم غلى نوعٌن
: Integer numbers أرلام صحٌحة مثل 123
: float numbers أرلام عشرٌة ومثل 12.5
مالحظة :
لغة JavaScriptال تمٌز بٌن المٌم Integerولٌم floatوٌتم تمثٌل كافة األرلام فً
JavaScriptعلى أنها لٌم عشرٌة float
ٌتم تمثٌل األرلام فى JavaScriptباستخدام تنسٌك 64-bit floating-pointوالذى تم تعرٌفه
عن طرٌك IEEE 754
: Strings -2هى عبارة عن المٌم النصٌة مثل " "Helloومثل أى textنكتبه وٌتم وضعه بٌن
هاتٌن العالمتٌن ( " " )
: variable declaration اإلعالن عن المتغٌرات ٌجب اإلعالن عنها عن طرٌك كلمة محجوزة
( )keywordداخل javascriptتسمى varوهنان طرٌمتٌن لإلعالن :
األولى ٌ : single variable :تم اإلعالن عن كل متغٌر على حدة
الثانى ٌ : multiple variables :تم اإلعالن عن أكثر من متغٌر باستخدام varونفصل بٌنهم
بعالمة الفاصلة ) comma ( ,
نالحظ فى األمثلة السابمة أننا لد أعلنا عن متغٌرات ومعنى هذا أننا حجزنا أماكن فى الذاكرة ،ولد
حددنا اسم هذه األماكن عن طرٌك تسمٌة المتغٌرات ولكن لم نحدد لٌمتها حتى اآلن
: var هى عبارة عن كلمة محجوزة ( )keywordفى لغة ٌ javascriptتم استخدامها عند عملٌة
declarationأو عملٌة initialization
ال ٌمكن استخدام نفس المتغٌر مرتٌن (أى ٌجب عدم إعادة إعالن نفس المتغٌر مرتٌن)
لغة javascriptهً لغة غٌر معدلة untypedوهذا ٌعنً أن المتغٌر داخل ٌ javascriptمكنه
االحتفاظ بمٌمة أي نوع بٌانات .على عكس العدٌد من اللغات األخرى ولذلن لٌس من الضرورى تحدٌد
نوع المٌمة التً سٌحتفظ بها المتغٌر أثناء اإلعالن المتغٌرات .وٌمكن أن ٌتغٌر نوع لٌمة المتغٌر أثناء
تنفٌذ أحد البرامج وٌعتنى javascriptبهذه التغٌرات تلمائًٌا.
: variable initialization تهٌئة المتغٌرات ٌمكن وضع لٌمة بدائٌة للمتغٌرات عند تخزٌن المٌمة
storingوهنان طرٌمتٌن للتهٌئة :
األولى ٌ :تم عمل initializationبطرٌمة مباشرة فى سطر واحد كاآلتى :
الثانىٌ :تم عمل declarationثم عمل initializationكل عملٌة فى سطر كاآلتى :
أسماء المتغٌرات ) (Variable namesأو ال ُمعرفات )ٌ (Identifiersمكن أن تكون مجموعة من
األحرف واألرلام ،ولكن ٌجب أن تبدأ بحرف أو . ( _ ) underscore
الحظ النتٌجة
مالحظة :
الطرف األٌسر )ٌ (4+5سمى تعبٌر expression
المٌمتٌن 4و 5تسمى ُمعامالت operands
االشارتٌن +و = تسمى عوامل operators
المٌمة 9هى الناتج من هذا التعبٌر expression
باالعتماد على عدد operandsالتى تتعامل معها operatorsفان operatorsتصنف الى ثالث
فئات :
أ : Unary -احادى تعمل على single operand
ب :Binary -ثنائي تعمل على two operands
ت :Ternary -ثالثى تعمل على three operandsومعروفة ب conditional operator
أنواع العوامل )ٌ : (types of operationوجد 6أنواع سوف نتعرف علٌها بالتفصٌل
النوع األول : Arithmetic Operators :العوامل الحسابٌة
النوع الثانى : Relational Operators :العوامل العاللٌة
النوع الثالث: Logical Operators :العوامل المنطمٌة
النوع الرابع : Membership Operators :العوامل العضوٌة
النوع الخامس : Bitwise Operators :عوامل الخاصة بالبت
النوع السادس :Assignment Operators :عوامل التخصٌص
-5النوع األول : Arithmetic Operators :العوامل الحسابٌة هى عوامل تستخدم لتنفٌذ العملٌات
الحسابٌة مثل (الجمع والطرح والضرب والمسمة )
-2النوع الثانى : Relational Operators :العوامل العاللٌة هى عوامل تستخدم للتحمك من
العاللات مثل أكبر من أو أصغر من وتسمى بعوامل الممارنة )(Comparison operators
وترجع لنا لٌمتٌن ) Trueأو )False
: True فى حالة تحمك الشرط
: False فى حالة عدم تحمك الشرط
Symbol Name Example Description
== Equal to x == y هل لٌمة xتساوى لٌمة y؟ لو متساوٌٌن
هترجع true
=! Not equal to x != y هل لٌمة xال تساوى لٌمة y؟ لو غٌر
متساوٌٌن هترجع true
> Greater than x >y هل لٌمة xأكبر من لٌمة y؟ لو اكبر منها
هترجع true
< Less than x < y هل لٌمة xألل من لٌمة y؟ لو ألل منها
هترجع true
=> Greater than or Equal to x >= y هل لٌمة xأكبر من أو تساوى لٌمة y؟ لو
أكبر منها أو متساوٌٌن هترجع true
=< Less than or Equal to x <= y هل لٌمة xألل من أو تساوى لٌمة y؟ لو
ألل منها منها أو متساوٌٌن هترجع true
-3النوع الثالث: Logical Operators :العوامل المنطمٌة هى عوامل تستخدم منطمٌة تستخدم لتنفٌذ
العملٌات الحسابٌة arithmetic operationsمثل ( و – أو – النفً )
-4النوع الرابع : Membership Operators :العوامل العضوٌة هى عوامل تستخدم للتحمك من
لٌمة متغٌر داخل مجموعة collectionاو سلسلة من المٌم string
Symbol Name Example Description
in in x in list هل لٌمة xموجودة فى list؟ لو موجودة هترجع
true
not in not in x not in list هل لٌمة xلٌست موجودة فى list؟ لو غٌر
موجودة هترجع true
-5النوع الخامس : Bitwise Operators :عوامل الخاصة بالبت هى عوامل تستخدم لتنفٌذ عملٌات
على التمثٌل الثنائً للبٌانات الرلمٌة أى للتعامل مع المتغٌرات لكن بطرٌمة bitsواستخدامها غٌر
مهم ولكنها عند استخدمها ٌتم تنفٌذ العملٌات بشكل سرٌع
Symbol Name Example Description
& Bitwise AND x &y عملٌة حساب جمع ال bitsالمشتركة بٌن xو y
| Bitwise OR x |y عملٌة جمع ال bitsالمشتركة والغٌر المشتركة
^ Bitwise XOR x ^y عملٌة جمع ال bitsالغٌر المشتركة بٌن xو y
~ Bitwise NOT ~x عملٌة عكس bitsثم ٌضٌف علٌهم 1و ٌحسب
)(compliment OR ناتج جمعهم ،بعدها ٌضرب الناتج فى سالب ()-
>> Bitwise right shift x >> y هى عملٌة ازاحة shiftألول خانتٌن bits
ووضعهم فى اآلخر
<< Bitwise left shift x << y هى عملٌة ازاحة shiftآلخر خانتٌن bits
ووضعهم فى األول
>>> Right shift with هذا المعامل ٌشبه تما ًما المعامل >> ،باستثناء
Zero أن البتات التً تحولت على الٌسار تكون دائ ًما
صفرا.
ً
-6النوع السادس :Assignment Operators :عوامل التخصٌص هى عوامل تستخدم لتخصٌص
أو تعٌٌن لٌم المتغٌرات مثل ( ٌساوى)
مثال :
: مثال
: syntax
: syntax
if else statement مثال على
: syntax
مثال على If....elif ….else statement
هذا المثال من على مولع tutorialspoint
ٌ مكنن استخدام عدد ال حصر له من هذا النوع ) ) if....else if ….else statementحٌث
تموم بتنفٌذ فرع متعدد المسارات multiway branchولكن هذا لٌس هذا الحل األفضل ألنه لد
نجد أن جمٌع الفروع تعتمد على لٌمة متغٌر واحد ولذلن سوف نموم باستخدام طرٌمة آخرى وهى
عبارة عن switch statement
: switch statement -4إذا تحمك الشرط conditionتنفذ االكواد statementالخاصة
بالشرط
الهدف من switchهو إعطاء
تعبٌر للتمٌٌم وعدة عبارات مختلفة
للتنفٌذ بنا ًء على لٌمة التعبٌرٌ .تحمك
المترجم من كل حالة ممابل لٌمة
التعبٌر حتى ٌتم العثور على مطابمة.
إذا لم ٌتطابك شًء ،فسٌتم استخدام
شرط افتراضً.
نالحظ أن جمٌع casesلم تتحمك لذلن سوف ٌتم تنفٌذ الجملة االفتراضٌة default
نالحظ أن جمٌع casesلم تتحمك لذلن سوف ٌتم تنفٌذ الجملة االفتراضٌة default
فى المثال السابك لم نستخدم break statementلذلن سوف ٌتم تنفٌذ جمٌع casesمن بعد
caseالتى تحمك فٌها الشرط )(case 2
: nested if statement -5هى عبارة عن جمل شرطٌة متداخلة لو تحمك condition Aهٌنفذ
الجمل الشرطٌة الثانٌة
نالحظ أن الشرط األول conditionAتتحمك لذلن ٌتم الدخول الى الجمل الشرطٌة الثانٌة وٌتم
تنفٌذ الجملة statementالخاصة بالشرط الذى تحمك condition
انذسس انسادس :انحهقاث انتكشاسيت )(loops
بشكل عام ٌ ،تم تنفٌذ األكواد statementsبشكل تسلسلً sequentiallyأى ٌتم تنفٌذ السطر
األول فً الدالة أوالً ،متبوعة بالثانٌة ،وهكذا .ولكن أحٌانا ً أثناء كتابة أحد البرامج ،لد تواجه مولفًا
وتكرارا .لذلن ستحتاج إلى كتابة عبارات حلمة تكرارٌة او ما ٌسمى ً مرارا
ً تحتاج فٌه إلى تنفٌذ إجراء
ب loopsوتكمن أهمٌة loopsأنها تملل عدد األسطر.
فى المثال السابك سوف ٌتم طباعة لٌمة 5ألن هنان عالمة ( = ) فى الشرط
نظرا
ٌ : for …. in loop -2تم استخدام هذا النوع لعمل loopداخل خصائص الكائن objectو ً
ألننا لم ننالش الكائنات بعد ،فمد ال تشعر بالراحة مع هذه الحلمة .ولكن بمجرد فهم كٌفٌة تصرف
الكائنات فً ، JavaScriptستجد هذه الحلمة مفٌدة للغاٌة
فى هذا المثال سوف لمنا بطباعة جمٌع الخصائص propertiesالخاصة بالكائن navigator
ٌ: while loop -3ستخدم لتكرار statementأو group of statementsعندما ٌكون الشرط
المحدد هو Trueوعندما ٌصبح الشرط falseسوف تتنتهى . loop
ٌ تم اختبار الشرط لبل تنفٌذ جسم الحلمة loop body
الشرح :
أوالً ،تتم تهٌئة المٌمة فً المتغٌر(.عملٌة إعالن declarationاو تهٌئة )initialization
ثانٌا ٌ ،تم التحمك من الشرط او التعبٌر فإذا كان الشرط صحٌ ًحا ، Trueهٌتم تنفٌذ جمٌع
األكواد داخل bodyوإذا كان الشرط غٌر صحٌح ، Falseهٌتم تجاهل جمٌع األكواد داخل
bodyوٌتم تنفٌذ األكواد التالٌة بعد . body
ثالثًا ،فً حالة كون الشرط صحٌ ًحا بعد إكمال جمٌع العبارات ٌ ،تغٌر المتغٌر أو ٌتنالص .بعد
أن تغٌرت لٌمة الخطوة الثانٌة المتغٌرة ٌتم اتباعها .تستمر هذه العملٌة حتى ٌصبح التعبٌر /
الشرط ( .falseعملٌة تغٌر لٌمة المتغٌر)
أخٌرا ٌتم تنفٌذ بمٌة التعلٌمات البرمجٌة خارج . body
ٌ : do …. while loop -4ستخدم لتكرار statementأو group of statements
تشبه الحلمة do ... whileالحلمة whileباستثناء أن تحمك الشرط ٌحدث فً نهاٌة الحلمة .وهذا
ٌعنً أنه سٌتم تنفٌذ loopمرة واحدة على األلل لبل التحمك من conditionحتى إذا كانت
conditionخاطئ
الحظ ٌتم تنفٌذ األكواد مروة واحدة على األلل لبل التحمك من الشرط
الشرح :
أوالً ،تتم تخصٌص المٌمة فً المتغٌر
ثانٌا ً ٌ :تم تنفٌذ الكود لبل التحمك من الشرط
ثالثا ً :ثالثا ً ٌتم التحمك من الشرط
أنواع جمل التحكم التكرارٌة )(Loop control statements
هى عبارة عن statementsنستخدمها للتحكم فى loopsبشكل أكثر تحكما ً ،فمثال عند نمطة
معٌنة ال ننفذ جزء من األكواد
ٌ وفر JavaScriptتحك ًما كامالً للتعامل مع الحلمات وعبارات التبدٌل .لد ٌكون هنان مولف
ضا مولف عندما ترٌد عندما تحتاج إلى الخروج من حلمة دون الوصول إلى لاعها .لد ٌكون هنان أٌ ً
تخطً جزء من كتلة التعلٌمات البرمجٌة الخاصة بن وبدء التكرار التالً للحلمة.وهنان عدة أنواع
سنتعرف علٌها اآلن
: break Statement -5نستخدمها عندما نرٌد الخروج من loopsاو عند تجاهل مجموعة
من االكواد عند نمطة معٌنة jump statementوتستخدم مع forو while
مثال :
الحظ النتٌجة
مثال 2على مولع : tutorialspoint
الحظ النتٌجة
انذسس انسابع :انذوال أو انوظائف )(functions
فى هذا الفصل سوف نتعرف على مفهوم الدوال methodsأو الوظٌفة functionأو االجراءات
proceduresلها أسماء وتعرٌفات كتٌرة ولكن كلهم لهم نفس الهدف ونفس المعنى
: functionالوظٌفة أو الدالة أو االجراء هو مجموعة من التعلٌمات البرمجٌة المابلة إلعادة االستخدام
والتً ٌمكن استدعاؤها فً أي مكان فً البرنامج.
أهمية الدوال :هنان بعض النماط التى توضح لنا اهمٌة : function
عدم تكرار نفس الكود مرارا وتكرارا.
ٌ ساعد المبرمجٌن فً كتابة الرموز النمطٌة .modular codes
تسمح للمبرمج بتمسٌم برنامج كبٌر إلى عدد من الوظائف الصغٌرة والمابلة لإلدارة.
: Calling a Functionالستدعاء الدوال أو استخدامها نكتب االسم الذى استخدمناه سابما عند تعرٌف
الدوال فمط
مثال على تعرٌف الدوال وطرٌمة استدعاء الدوال
الجزء الذى ٌحاط باللون األزرق هذا ٌسمى تعرٌف الدالة defining functionوالجزء الذى تحته
خط أحمر ٌسمى استدعاء الدالة calling function
وعندما نضغط على كلمة Click Hereسوف ٌستدعى الدالة وٌظهر كلمة "! "Hello world
: Function Parametersمعامالت ٌتم تمرٌرها داخل الدالة
حتى اآلن ،رأٌنا functionsبدون معامالت parametersأو لٌم نمررها للدالة .وهنان طرٌمة
بسٌطة نستخدمها لتمرٌر parametersمختلفة أثناء استدعاء وظٌفة .حٌث ٌمكن التماط هذه
parametersالتً تم تمرٌرها داخل الدالة وٌمكن إجراء أي تالعب على تلن .parameters
ٌمكن أن تأخذ الدالة parametersمتعددة ونفصل بٌهم بفواصل ) .comma ( ,
مثال :
وعندما نضغط على كلمة Click Hereسوف ٌستدعى الدالة وٌظهر الناتج التالى
: The return Statementاستخدام جملة return
ٌ مكن أن تحتوي functionعلى جملة إرجاع اختٌاري . optional return statementهذا
مطلوب إذا كنت ترٌد إرجاع لٌمة من دالةٌ .جب أن نكتب جملة returnآخر سطر فى األكواد ألنها
تنهً الدالة ثم ترجع لٌمة
مثال :فى المثال التالى نموم بدمج االسم االول مع االسم الثانى ثم نرجع مجموع المٌمتٌن
وعندما نضغط على كلمة Click Hereسوف ٌستدعى الدالة وٌظهر الناتج التالى
: Nested Functionsالدوال المتداخلة
لبل اصدار ، JavaScript 1.2تم تعرٌف Nested Functionsداخل األكواد البرمجٌة ذات
المستوى األعلى فمط ، level global codeولكن ٌسمح JavaScript 1.2بتداخل الدالة داخل
ض ا.
دوال أخرى أٌ ً
ال ٌزال هنان لٌود لد ال تظهر تعرٌفات الدالة داخل loopsأو الجمل الشرطٌة .تنطبك هذه المٌود
على تعرٌفات الدالة فمط اى على statementالموجودة داخل . function
وعندما نضغط على كلمة Call Functionسوف ٌستدعى الدالة وٌظهر الناتج التالى
: The Function() Constructorدالة ال ُمنشئ
Constructor عبارة عن مصطلحات من .Object Oriented Programmingلد ال تشعر
بعدم استٌعاب هذا النوع ،ولكن كل ما ٌجب معرفته فى هذا الفصل اآلتى :
: Function() Constructor عبارة عن نوع من أنواع الدوال الذى نستخدمه مع الكلمة
المحجوزة new operator
ٌ تم تعرٌف هذا النوع عن طرٌك الكلمة ( Functionلٌس )function
ٌ تم تمرٌر parametersأو argumentsكعبارة عن stringولكن آخر parameterهو
عبارة عن جسم الدالة bodyوٌمكن كتابة أى عدد من parametersوال ٌمكن تمرٌر اسماء
دوال آخرى داخل هذا النوع
ٌ مكن كتابة اكثر من جملة statementداخل bodyعن طرٌك الفصل بٌن الجمل بعالمة ) ; (
: unnamed functions هى عبارة عن دوال functionsلٌس لها اسم وٌتم انشائها عن
طرٌك Function() constructorوتسمى بالدوال المجهولة anonymous functions
مثال :
وعندما نضغط على كلمة Call Functionسوف ٌستدعى الدالة وٌظهر الناتج التالى
: Function Literals
هى طرٌمة آخرى لتعرٌف الدوال وهو عبارة عن تعبٌر expressionالتى تحدد الدوال التى لٌس
لها اسم unnamed functions
الفرق بٌن function literalsوبٌن الدوال اآلخرى
functions literals -5تستخدم التعبٌرات expressionبدالً من statement
functions literals -2لٌس من الضرورى أن ٌكون لها اسم
ٌ مكن تحدٌد اسم للدالة عند التعرٌف ولكن لٌس له أى أهمٌة كاآلتى :
مثال :
وعندما نضغط على كلمة Call Functionسوف ٌستدعى الدالة وٌظهر الناتج التالى
انذسس انثامن :األحذاث )(Events
فى هذا الفصل سوف نتعرف على مفهوم األحداث events
: eventsاألحداث هى عبارة عن األفعال التى ٌموم بها الشخص وٌنتج عنها رد الفعل ،فعندما ٌزور
أحد المستخدمٌن مولعن على الوٌب ،فإنهم ٌفعلون أشٌاء مثل النمر على النصوص والصور والروابط
المعطاة ،وتحرٌن مؤشر الماوس فوق األشٌاء وما إلى ذلن .هذا ما ٌسمى ب events
ٌ تم التعامل مع التفاعل لغة JavaScriptمع لغة HTMLمن خالل األحداث التً تحدث عندما ٌعالج
المستخدم أو المستعرض صفحة.
عندما ٌتم تحمٌل الصفحة ٌ ، page loadsطلك علٌها اسم . eventعندما ٌنمر المستخدم على زر
ضا عبارة عن ، eventومثل الضغط على أي مفتاح وإغالق نافذة وتغٌٌر ،تكون هذه النمرة أٌ ً
حجم نافذة وما إلى ذلن.
ٌ مكن للمطورٌن استخدام هذه األحداث لتنفٌذ استجابات أكواد لغة ، javascriptومن ضمن أمثلة
االستجابات responsesمثل إغالق النوافذ عند الضغط على ، buttonsوالرسائل التً سٌتم
عرضها للمستخدمٌن عند الضغط على ،buttonsوالبٌانات المراد التحمك منها ،وأي نوع آخر
من االستجابة التً ٌمكن تخٌلها عند الضغط على buttons
Events هً جزء من ) Document Object Model (DOMالمستوى 3وكل عنصر HTML
ٌحتوي على مجموعة من األحداث التً ٌمكن أن تؤدي إلى تنفٌذ أكواد . javascript
ٌ : onkeydown Event ستخدم هذا eventلتنفٌذ scriptعند الضغط على المفتاح
ٌ : onkeypress Event ستخدم هذا eventلتنفٌذ scriptعند الضغط على المفتاح وتحرٌره
ٌ : onkeyup Event ستخدم هذا eventلتنفٌذ scriptعند تحرٌر المفتاح (ترن المفتاح)
oالحدث onkeydownعكس الحدث onkeyup
ٌ : script شٌر إلى أكواد أو دوال javascriptأو VBScript
: Other Level Eventsأحداث شائعة ومهمة
هنان 7خصائص أو أحداث ٌمكن استخدامهم لتشغٌل أي javascriptأو vbscriptعند حدوث
أى حدث عن طرٌك الماوس mouseولكن هذه األحداث لٌست صحٌحة مع العناصر التالٌة :
base, bdo, br, frame, frameset, head, html, iframe, meta, param, script,
style, title
ٌ : onclick Event ستخدم هذا eventلتنفٌذ scriptعند النمر بالماوس على العنصر
ٌ : ondblclick Event ستخدم هذا eventلتنفٌذ scriptعند النمر المزدوج على العنصر
ٌ : onmousedown Event ستخدم هذا eventلتنفٌذ scriptعند الضغط على زر الماوس
ٌ : onmouseup Event ستخدم هذا eventلتنفٌذ scriptعند تحرٌر زر الماوس
ٌ : onmousemove Event ستخدم هذا eventلتنفٌذ scriptعند تحرٌن مؤشر الماوس
بوجه عام
ٌ : onmouseout Event ستخدم هذا eventلتنفٌذ scriptعندما ٌتحرن مؤشر الماوس خارج
العنصر
ٌ : onmouseover Event ستخدم هذا eventلتنفٌذ scriptعندما ٌتحرن مؤشر الماوس فوق
العنصر
oالحدث onmousedownعكس الحدث onmouseup
ٌ : script شٌر إلى أكواد أو دوال javascriptأو VBScript
سوف نذكر فى آخر هذه الدورة جمٌع eventsالتى توجد داخل لغة javascript
أمثلة على eventsمن مولع tutorialspoint
مثال على onclick
وعندما نضغط على كلمة Click Hereسوف ٌستدعى الدالة وٌظهر الناتج التالى
مثال على onmouseover and onmouseout
ٌساعدن هذان النوعان من األحداث على إنشاء تأثٌرات لطٌفة مع الصور أو حتى مع النص
ضا
أٌ ً
وعندما نمف بالماوس فوق الجملة الثانٌة نجد تغٌر النص وأصبح كاآلتى :
انذسس انتاسع :مهفاث انتعشيف )(cookies
فى هذا الفصل سوف نتعرف على ملفات تعرٌف االرتباط cookies
: Cookies معناها ملفات تعرٌف اإلرتباط أو سجل التتبع أو سجل التصفح أو الكوكٌز وهً
ملفات حجمها ٌُماس بالـ ٌ ،Bitتم تخزٌنها بشكل تلمائً فً المتصفح ،وبعض الموالع التً تزورها
للمرة األولى تنبهن من خالل شرٌط أعلى أو أسفل المولع بالموافمة وجود هذه الملفات فً جهازن
لتسهٌل تصفحن للمولع وهى ملفات مجرد برمجٌات نصٌة ال تنفٌذٌة
ً
بروتوكوال عدٌم تستخدم متصفحات الوٌب والخوادم بروتوكول HTTPللتواصل ،وٌعتبر HTTP
الجنسٌة . statelessولكن بالنسبة لمولع تجاري على الوٌب ٌ ،لزم الحفاظ على معلومات الجلسة
session informationبٌن الصفحات المختلفة للمولع .على سبٌل المثال ٌ ،نتهً المستخدم من
التسجٌل registrationبعد إكمال العدٌد من الصفحات .ولكن اذا اردنا الحفاظ على معلومات
جلسة المستخدمٌن عبر جمٌع صفحات الوٌب فماذا نفعل ،هنا كانت اهمٌة cookiesفهى تموم
بالحفاظ على معلومات خاصة بالمستخدم وٌتم تخزٌنها على الجهاز الشخصً
ٌ عد استخدام ملفات تعرٌف االرتباط الطرٌمة األكثر فاعلٌة فً تذكر وتتبع التفضٌالت والمشترٌات
والعموالت والمعلومات األخرى المطلوبة لتحسٌن تجربة الزائر أو إحصائٌات المولع.
تم تصمٌم cookieفً األصل لبرامج ٌ .CGIتم نمل البٌانات الموجودة فً داخل cookieتلمائًٌا
بٌن متصفح الوٌب وخادم الوٌب ،بحٌث ٌمكن CGI scriptsالموجودة على الخادم لراءة وكتابة
لٌم cookieالمخزنة على العمٌل.
ضا معالجة ملفات تعرٌف االرتباط باستخدام خاصٌة cookie property ٌ مكن لـ JavaScriptأٌ ً
الموجودة بعنصر المستند .Document objectتستطٌع JavaScriptلراءة ملفات تعرٌف
االرتباط التً تنطبك على صفحة الوٌب الحالٌة وإنشائها وتعدٌلها وحذفها.
تموم ملفات التتبع cookieبتسجٌل 5حمول متغٌرة الطول variable-length fields
ٌ : Name=Value -5تم تعٌٌن setملفات تعرٌف االرتباط واستردادها retrieveفً شكل
أزواج لٌم مفتاحٌة key-value pairs
: Expires -2معناها انتهاء الصالحٌة ومن خاللها ٌمكن تعٌٌن تارٌخ انتهاء صالحٌة ملف تعرٌف
غا ، blankفستنتهً صالحٌة ملف تعرٌف االرتباط الذى سوف ٌنتهى فٌه .وإذا كان هذا فار ً
االرتباط عند مغادرة الزائر المتصفح.
: Domain -3معناها المجال ومن خاللها ٌتم تحدٌد اسم المجال الخاص بمولعن.
: Path -4معناها المسار ومن خاللها ٌتم تحدٌد المسار إلى directoryأو صفحة الوٌب التً
تحدد ملف تعرٌف االرتباط.و لد ٌكون هذا فار ً
غا blankإذا كنت ترٌد استرداد ملف تعرٌف
االرتباط من أي دلٌل أو صفحة.
: Secure -5معناها آمن فإذا كان هذا الحمل ٌحتوي على كلمة " ، "secureفٌمكن استرداد ملف
تعرٌف االرتباط فمط من خالل خادم آمن . secure serverوإذا كان هذا الحمل فار ً
غا ،فال
ٌوجد مثل هذا المٌد.
: expires هذه الخاصٌة اختٌارٌة .فإذا لدمت بتعٌٌن بتارٌخ أو ولت صالح لهذه الخاصٌة ،
فحٌنئذ سوف تنتهً صالحٌة cookieفً التارٌخ أو الولت الذى تم تعٌٌنه ،وبعد ذلن لن ٌتم
الوصول إلى لٌمة . cookie
مالحظة -لد ال تتضمن لٌم cookieالفاصالت المنموطة semicolonsأو الفواصل commasأو
المسافات . whitespaceلذلن ربما تستخدم دالة )( escapeلتشفٌر encodeالمٌم لبل تخزٌنها
ضا استخدام الدالة )( unescapeالممابلة للدالةداخل .إذا لمت باستخدام هذه الدالة فٌجب علٌن أٌ ً
)( escapeعند لراءة لٌمة . cookie
مثال :من على مولع tutorialspoint
اآلن ٌحتوي جهازن على ٌ cookieسمى ٌ . nameمكنن تعٌٌن cookiesمتعددة باستخدام أزواج
key=valueوٌفصل بٌنهم بفواصل comma
: Reading Cookiesلراءة ملفات تعرٌف االرتباط
إن أبسط طرٌمة لمراءة Cookiesهً عن طرٌك الكائن document.cookieألن لٌمة هذا الكائن
هً عبارة عن cookieلذلن ٌمكنن استخدام هذه stringعندما ترٌد الوصول إلى ملف تعرٌف
االرتباط .تحتفظ stringالخاصة ب document.cookieبمائمة من أزواج name = value
مفصولة بفواصل منموطة ،حٌث ٌكون nameهو اسم cookieوٌكون valueهو لٌمة string
الخاصة بها.
مثال :من على مولع tutorialspoint
عند ادخال لٌمة " "mahmoudسوف ٌظهر لنا النتٌجة كاآلتى :
: Deleting a Cookieتحدٌد تارٌخ انتهاء صالحٌة cookies
فً بعض األحٌان ،ستحتاج إلى حذف cookieال ترجع لنا أى لٌمة ،وٌتم ذلن عن طرٌك تعٌٌن ولت
ماضً للخاصٌة ""expires
مثال :من على مولع tutorialspoint
عند ادخال لٌمة " "mahmoudسوف ٌظهر لنا النتٌجة كاآلتى :
انذسس انعاشش :إعادة توجيه الصفحة )(Page Redirection
فى هذا الفصل سوف نتعرف على كٌفٌة اعادة توجٌه الصفحة
لد تكون واجهت مولفا ً حٌث لمت بالنمر فوق عنوان URLللوصول إلى صفحة Xولكن تم توجٌهن
داخلًٌا إلى صفحة أخرى ٌ .Yحدث ذلن بسبب إعادة توجٌه الصفحة Page Redirection
عند الضغط على كلمة " "Redirect Meسوف ٌفتح ٌعٌد توجٌه الصفحة الحالٌة إلى صفحة آخرى
مثال : 2من على مولع tutorialspoint
بعد 10ثوانً سوف ٌتم اعادة توجٌه الصفحة الحالٌة إلى صفحة آخرى
ٌ مكنن عرض رسالة مناسبة لزوار مولعن لبل إعادة توجٌههم إلى صفحة جدٌدة .لد ٌحتاج هذا إلى
تأخٌر زمنً للٌالً لتحمٌل صفحة جدٌدةٌ .وضح المثال السابك كٌفٌة عمل اعادة توجٌه بعد فترة زمنٌة
من فتح المولع عن طرٌك الدالة )(setTimeout
setTimeout() هً دالة مدمجة داخل الجافا سكرٌبت والتً ٌمكن استخدامها لتنفٌذ وظٌفة او دالة
أخرى بعد فترة زمنٌة محددة.
مثال : 3من على مولع tutorialspoint
ٌ وضح المثال السابك كٌفٌة إعادة توجٌه زائري مولعن إلى صفحة مختلفة باالعتماد على متصفحات
مختلفة آخرى .
انذسس انحادى عشش :تحديث الصفحة )(Page Refresh
فى هذا الفصل سوف نتعرف على كٌفٌة عمل تحدٌث للصفحة refresh
ٌمكنن تحدٌث صفحة وٌب باستخدام الدالة )( reloadوٌمكن استدعاء هذا الرمز تلمائًٌا عند ولوع
حدث eventأو ببساطة عندما ٌنمر المستخدم على رابط .إذا كنت ترغب فً تحدٌث صفحة وٌب
باستخدام النمر بالماوس ،فالحظ المثال التالى :
مثال :
: reload( boolean ) هذه الدالة تسمح بعمل refreshللصفحة عند الضغط على الرابط
وبتاخد لٌمة من نوع booleanاى لها حالتان
األول :تاخذ لٌمة trueفى حالة اذا اردنا عمل تحدٌث refresh
الثانى :تاخذ لٌمة falseاذا اردنا لم نرٌد بعمل تحدٌث refresh
: Auto Refreshعمل تحدٌث تلمائٌا ً
ضا استخدام JavaScriptلتحدٌث الصفحة تلمائًٌا بعد فترة زمنٌة محددة عن طرٌك استخدما ٌمكنن أٌ ً
الدالة )(setTimeout
مثال :
: AutoRefresh( t ) هذه الدالة تسمح بعمل refreshللصفحة كل فترة زمنٌة ممدارها ) ( t
انذسس انثاني عشش :مشبعاث انحواس )(Dialog Boxes
فى هذا الفصل سوف نتعرف على كٌفٌة استخدام المربع المحورى وسوف نتعرف على انواع مربعات
الحوار فى لغة javascript
تدعم لغة JavaScriptثالثة أنواع مهمة من مربعات الحوارٌ .مكن استخدام مربعات الحوار هذه
لعمل رسالة تنبٌه alertأو الحصول على تأكٌد confirmationعلى أي إدخال أو الحصول على
نوع من المدخالت inputsمن المستخدمٌن.
عند الضغط على " "Click Meسوف ٌظهر رسالة تحذٌرٌة كمربع محورى dialog boxهذا
المربع مكتوب بداخله الرسالة التالٌة " !"This is a warning message
عند الضغط على الزرار " " Okسوف تظهر النتٌجة التالٌة
النوع الثانى : confirmation Dialog Box :
ٌتم استخدام مربع حوار التأكٌد فً الغالب للحصول على موافمة المستخدم على أي خٌار
وٌحتوى هذا المربع على 2 buttons
األول Ok :إذا لام المستخدم بالنمر فوق هذا الزر ،buttonفإن الدالة )( confirmتموم
بإرجاع لٌمة .true
الثانً Cancel :إذا لام المستخدم بالنمر فوق هذا الزر ،buttonفإن الدالة )( confirmتموم
بإرجاع لٌمة .false
: confirm("string") هذه الدالة تظهر رسالة تأكٌد وبتأخذ لٌمة نصٌة string
سوف تظهر النتٌجة على المتصفح كاآلتى :
عند الضغط على " "Click Meسوف ٌظهر رسالة تأكٌد كمربع محورى dialog boxهذا المربع
مكتوب بداخله الرسالة التالٌة " ? " Do you want to continue
عند الضغط على الزرار " " Okسوف تظهر النتٌجة التالٌة
عند ادخال لٌمة نصٌة مثال " "Mahmoudولمنا بالضغط على الزرار " " Okسوف تظهر
النتٌجة التالٌة
عند ادخال لٌمة نصٌة مثال " "Mahmoudولمنا بالضغط على الزرار " " Cancelسوف تظهر
النتٌجة التالٌة
انذسس انثانج عشش :انكهمت انمحجوصة (Void Keyword) void
فى هذا الفصل سوف نتعرف كلمة رئٌسٌة محجوزة keywordداخل لغة javascriptوهى كلمة
voidوسوف نتعرف على استخدامها
: void معناها فارغ أو كلمة محجوزة داخل لغة JavaScriptحٌث ٌمكن استخدامها كعامل
وحٌد ٌ unary operatorظهر لبل المعامل الخاص به single operand
ٌستخدم هذا operatorلتمٌٌم expressionبدون إرجاع لٌمة . return void
عا لهذا المعامل ٌكون من جانب العمٌل ، clientحٌث ٌسمح لن بتمٌٌم تعبٌر االستخدام األكثر شٌو ً
دون أن ٌعرض المتصفح لٌمة التعبٌر الذي تم تمٌٌمه.
سوف نوضح بعض األمثلة على استخدام void
مثال : 5
هنا ٌتم تمٌٌم التعبٌر ()'!!! )alert('warningولكن لم ٌتم تحمٌله مرة أخرى فً المستند الحالً
نالحظ من المثال السابك أن الرابط ال ٌعمل أي شًء ألن التعبٌر " "0لٌس له أي تأثٌر فً
.JavaScriptحٌث ٌتم تمٌٌم التعبٌر " ، "0ولكن ال ٌتم تحمٌله مرة أخرى فً المستند الحالً.
مثال : 3نستخدم voidالظهار لٌم undefiened
مثال
عند الضغط على الزرار Printسوف ٌظهر لنا اإلعدادات الخاصة بالطباعة كاألتى :
على الرغم من أن الطرٌمة السابمة تخدم الغرض من الحصول على نسخة مطبوعة ،إال أنها لٌست
طرٌمة موصى بها .حٌث تعد صفحة الطابعة المالئمة فً الحمٌمة مجرد صفحة تحتوي على نصوص
فمط وال تحتوى على صور imagesأو رسومات graphicsأو إعالنات .advertising
الطرٌمة الثانٌة ٌ :مكنن استخدام هذا tagالتالى اذا كنت ال ترغب فى عمل نسخ للصفحة ومن
ثم ٌمكنن استخدام PERLأو أي برنامج نصً آخر فً الخلفٌة لتطهٌر النص المابل للطباعة
وعرضه للطباعة النهائٌة
ف ٜاىخراً أدثثد أُ أّ٘ٓ عي ٚتعض اىرْثٖٞاخ اىََٖح فٖزا اىنراب ٕ٘ ّاذج جٖذ ال ٝعئَ إال هللا ٍِٗ اإلّصاف أُ ٝعيمٌ
مو ٍِ ٝقشأ ٕزا اىنراب أّٔ ىٞظ ٍجٖ٘د ٙفذغة ٗإَّا ٕ٘ ٍجٖ٘د ّقمو ٗذشجَمح ٗذصمذٞخ ٍيمإٗ ٌٞتذمس ٍمِ اىَ٘ا م
اىَشمممٖ٘سج فممم ٜعممماىٌ اى٘ٝمممة ٍٗمممِ أ مممٖش ٕمممزٓ اىَ٘ا ممم اىرممم ٜماّمممد اىَشجممم اىشكٞغممم ٜىنراتمممح ٕمممزا اىنرممماب ٍ٘ ممم
ٗ https://www.tutorialspoint.com ٍ٘ٗ https://www.w3schools.com/تعض اىَ٘ اٟخش. ٙ
مَا ٝجة أُ ٝعيٌ مو ٍِ ٝقشأ ٕزا اىنراب أُ ٕزا اىنراب إَّا ٕ٘ تَصاتح ٍقذٍح ىذخ٘ىل ىيغح Java scriptخاصح ٗعاىٌ
اى٘ٝة عاٍح ٗ ،أال ٝجة أال ٝنُ٘ ٕزا اىنراب ٕ٘ ٍشجعل األعاع ٜألُ ٍم ٍمشٗس اى٘ مد ّجمذ إّمٔ ٝذمذز ذغٞمشاخ فمٜ
ىغح ٗ java scriptىزىل ٝجة عيٞل داكَا أُ ذنُ٘ عي ٚعٖذ تٖزٓ اىرغٞشاخ ٗاىرط٘ٝشاخ اىر ٜذرذذز تشنو ٍغرَش .
ٗٝغعذّ ٜأُ أخثشمٌ تأُ ٕمزا اىنرماب ٕم٘ شاىمس مرماب فم ٜعيغميرٗ ٜاىرم ٜعْ٘اّٖما اىطشٝمع إىم ٚعماىٌ ذصمَ ٌٞصميذاخ
اى٘ٝة ٗ . The way to Web designاّرظشّٗ ٜف ٜاىجضء اىصاّ ٍِ ٜشح عيغيح . The way to Java script
مَممما أّصمممخ أدثمممات ٜداكَممما ل أُ ٝغمممع٘ا إىممم ٚاىعيمممٌ ٗاىمممرعيٌ فَٖممما اىغمممثٞاُ ىذٞممماج األٍمممٌ ٗىْٖقمممح اىشمممع٘ب ٗس مممٜ
اإلّغاُ ،مَا أرمشمٌ تق٘ه تعض اىعيَاء " :صماج اىَاه أخشاجٔ ٗصماج اىعيٌ أُ ذعئَ ىغٞشك".
ٕممزا اىنرمماب ٕمم٘ صممذ ح جاسٝممح عممِ ّيغممٗ ٜإٔممو تٞرممٗ ٜأدثمماتٗ ، ٜأعممأه هللا أُ ٝرقثممو ٕممزا اىعَممو ٗٝجيعممٔ خاىصمما ل
ى٘جٖممٔ اىنممشٗ . ٌٝمَمما ٗيممعرٔ تمم ِٞأٝممذمٌ ىرْمماى٘ا ٍْممٔ عيَ ما ل ٗىمم٘ ممماُ ٝغممٞشا ل ،فَٞنممْنٌ أٝق ما ل ّشممشٓ عيمم ٚأ ٍ٘ ٛم
ٗذعمممذٝو ٍذرممم٘آ تَممما ٝخمممذً اىْممماط ٗاال رثممماط ٍْمممٔ أٝقممما ل مَممما ذشممماء ُٗ تمممذُٗ اعمممروزاٍُٗ .مممِ ٝشةمممة فمممّ ٜغمممخح
ٕ ٍِ Wordزا اىنراب فَٞنْٔ أُ ٝشاعيْ ٚعي ٚاإلَٞٝاخ .
سدممٌ هللا سجممال إٔممذ ٙىمم ٜعٞمم٘ ت ، ٜأسجمم٘ ٍممِ مممو ممخذ ٝقممشأ ٕممزا اىنرمماب إرا ٗ ممو عْممذ خطممأ عيَمم ٚأٗ خطممأ
إٍاكمممم ٜأٗ ٍعيٍ٘ممممح ممممذ ٝغمممماء فَٖٖمممما أُ ٝشاعمممميْ ٜعيمممم ٚاإلَٝممممٞاخ اٟذٞممممح ىنمممم ٚأ ممممً٘ ت صممممادٔ فمممم ٜاىطثعمممماخ
اٟخش ، ٙمَا أسج٘ أال ذْغّ٘ا ٍِ صاىخ دع٘اذنٌ .
E-mail : [email protected]
E-FaceBook : Mahmoud Soliman
Youtube : https://www.youtube.com/channel/UCfZvWjnYnfxI55v4LNhBekA
نتحميم جميع انكتب انخاصت بنا يمكن متابعت قناتي عهي انتيهيجشاو من خالل هزا انشابط :
Telegram Channel: https://t.me/joinchat/-aC4Ps0pna5lY2M0
نتحميم جميع انكتب انخاصت بنا يمكن متابعت صفحتنا عهي انفيس بوك من خالل هزا انشابط :
Public Page: Help-me-page
Mahmoud Soliman