لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 07/21/24 في كل الموقع
-
ما كان ينبغي لك أن تذكر الآن الid !!!! هذا موضوع خاص في ال css!! كان يجب عليك أن تؤجله إلى حينه، لأنك هنا تتوه الناس في هذا الأمر!!! أنا على علم به، لذلك أفهمك، ولكن اللذي ليس لديه أي علم، سوف يعتقد بأن هذا الأمر خاص بالهاتمئيل!! ارجو مراجعة هذا الفيديو وعمل فيديو آخر لا يذكر شئ من قريب أو بعيد فيما يخص الأمور المتعلقة في ال css. أكرر لا تدخل أمر خاص في شئ ما لم تشرحه بعد وتضعه في موضوع الآن!!! أرجو مراعاة التدرج في شرح الأمور.1 نقطة
-
لقد قمت بعمل المشروع النهائي لي على الاكادمية ورفعته على vercel, المشكلة أن الموقع لا يظهر إلا عند كتابة ال URL, ماهيا المشلكة؟ هذا هوا رابط الموقع: https://photo-share-five.vercel.app/# وهذا رابط github: https://github.com/Ahmedbasrada/Photo-Share ظهور الموقع هوا أهم شيئ, اذا كان الموضوع معقد جدا فإذا كانت هنالك كورسات تنصح بها, أكون من الشاكرين1 نقطة
-
اريد ان افتح موقع مستقل لا يفتح ويعطيني badgataway 502 ما المشكلة مع العلم ان لى رصيد عليه1 نقطة
-
1 نقطة
-
1 نقطة
-
لا لايمكن التحكم في عمل الموقع الوصول إليه إذا تم إيقافه من قبل المسؤولين عليه . فيبدوا أنه كانت توجد مشاكل لديهم سابقا أو ثغرات وقد قامو بحلها أو اضافو خاصية عدم إتاحة الخدمة إلا في الوقت المحدد. ولا أيضا لا يمكن تفضيلك على أحد من خلال السيرفر حيث الخادم يقوم بتنفيذ الطلبات حسب الوصول أولا فإذا قمت بالذهاب إلى العنوان وكان الخادم مشغولا وتم إستخدام جميع الموارد فستجد بطئ أو يظهر لك خطأ ومن الممكن أن أحد ذهب إلى الخادم بعدم مباشرة ولكن في ذلك الوقت كان الخادم متاحا حاليا فسيتم تنفيذ طلبه لهذا لا يمكن التحكم بهذا السلوك .1 نقطة
-
نعم يمكنك استخدام FastAPI لجعل نموذج تعلم الآلة الخاص بك تفاعليا سواء كتطبيق ويب، أو تطبيق موبايل، أو حتى تطبيق سطح المكتب. يمكنك بناء API للتفاعل مع نموذج تعلم الآلة الخاص بك، و هذا عن طريق إنشاء نهايات لإرسال واستلام البيانات كإرسال بيانات للنموذج وتلقي التوقعات.1 نقطة
-
نلقي الضوء في هذا المقال على طرق التعامل مع السلاسل النصية Strings، التي تمثل في لغة جافا سكريبت وفي لغات البرمجة عمومً الأجزاء المقتطفة من نص ما، ونناقش ما عليك معرفته بشكل أساسي حول السلاسل النصية مثل إنشائها وتجاوز إشارات التنصيص (استخدامها كما هي دون أية دلالات) وضم أو دمج عدة سلاسل نصية مع بعضها البعض. ننصحك قبل المتابعة في قراءة هذا المقال بالاطلاع على بعض المقالات السابقة مثل: أساسيات علوم الحاسب. أساسيات HTML. أساسيات عمل CSS. قوة الكلمات! الكلمات هي أساس التواصل البشري والويب وسط معرفي مبني أساسًا على النصوص وقد صممت لتعزز التواصل بين البشر وتبادل المعلومات، لهذا من المهم جدًا التحكم بطريقة عرض تلك النصوص. تتيح لك لغة التوصيف HTML بناء هيكل المحتوى النصي وإعطاءه دلالاته بينما تنسّق CSS هذا المحتوى وتعززه ويتمثل دور لغة جافا سكريبت في تقديمها لطرق مختلفة للتعامل مع النصوص واﻷعداد وتقديم ميزات مهمة مثل القدرة على عرض رسائل وعرض نوافذ لإدخال البيانات وترتيب العناصر كما نريد وغيرها الكثير. وما عرضناه من برامج حتى اﻵن في سلسلة مقالاتنا التي بدأناها بالتعرف على لغة جافا سكريبت تتضمن شكلًا من أشكال التعامل مع النصوص. التصريح عن السلاسل النصية قد تجد بداية أن طريقة التعامل مع النصوص في جافا سكريبت تتشابه مع طريقة التعامل مع اﻷعداد تقريبًا، لكن عندما تتعمق أكثر ستلاحظ بعض الاختلافات الواضحة. سنبدأ إذًا بإدخال بعض اﻷسطر في طرفية جافا سكريبت في متصفحك (اضغط "Ctrl" + "Shift" + "k" في فايرفكس): const string = "The revolution will not be televised."; console.log(string); عرّفنا في الأسطر السابقة متغيّرًا وهيأناه بإسناد قيمة نصية له ثم أعدنا هذه القيمة. لاحظ أن الاختلاف الوحيد عند تهيئة متغير نصي هو إحاطة القيمة بإشارتي تنصيص، وإن لم تفعل ذلك سترى رسالة خطأ. جرّب ما يلي: const badString1 = This is a test; const badString2 = 'This is a test; const badString3 = This is a test'; لن تعمل الأسطر السابقة، لأن أي قيمة نصية دون إشارتي تنصيص حولها سيفترضها المتصفح أسماءً لمتغيرات أو خاصيات أو كلمات محجوزة وما شابه. وعندما لا يجد المتصفح ما افترضه سيعرض رسالة خطأ (مثل "missing; before statement" بمعنى "إغفال ; قبل التصريح"). وعندما يرى المتصفح بداية السلسلة النصية لكنه لا يرى نهايتها التي تشير إليها علامة التنصيص الثانية سيعرض رسالة خطأ تشير إلى أنك لم تُنهي السلسلة النصية كما يجب ("unterminated string literal"). فإن واجهتك رسائل خطأ مشابهة لما ذكرناه فعد إلى شيفرتك البرمجية وتحقق من إشارات التنصيص حول السلاسل النصية. const badString = string; console.log(badString); سيعمل هذا المثال فقط إن صرحت بداية عن المتغير string، وسيكون للثابت badString قيمة string نفسها. علامة التنصيص المفردة والمزدوجة والمائلة بإمكانك أن تختار علامة التنصيص المفردة (') أو المزدوجة (") أو المائلة (```) لإحاطة السلسلة النصية. إليك مثالًا: const single = 'Single quotes'; const double = "Double quotes"; const backtick = `Backtick`; console.log(single); console.log(double); console.log(backtick); ولا بد من استخدام نفس إشارة التنصيص في بداية ونهاية السلسلة وإلا سترى رسالة خطأ: const badQuotes = 'This is not allowed!"; وبإمكانك عمومًا استخدام العلامات المزدوجة أو المفردة وفقًا لرغبتك الشخصية فلكلاهما العمل نفسه ومن اﻷفضل من الناحية العملية اختيار أحد اﻷسلوبين واتباعه في كامل مشروعك. وتُدعى السلاسل النصية المعرّفة بعلامة التنصيص المائلة بالقوالب المفسّرة template literals وهي مشابه من الناحية العامة للسلاسل النصية العادية مع بعض الميزات الخاصة: بإمكانك إدراج شيفرة جافا سكريبت ضمنها. بإمكانك التصريح عن القوالب المفسّرة على عدة أسطر. إدراج شيفرة جافا سكريبت ضمن نص بإمكانك تغليف شيفرة جافا سكريبت لعرض نتيجتها ضمن سلسلة نصية ضمن القالب {}$. إليك مثالًا: const name = "Chris"; const greeting = `Hello, ${name}`; console.log(greeting); // "Hello, Chris" استخدم نفس التقنية أيضًا لضم متغيرين معًا: const one = "Hello, "; const two = "how are you?"; const joined = `${one}${two}`; console.log(joined); // "Hello, how are you?" تُدعى عملية ضم السلاسل النصية بهذه الطريقة بتجاوز أو دمج النصوص concatenation سياق عملية التجاور لنلق نظرة على عملية التجاور من خلال المثال التالي: <button>Press me</button> <div id="greeting"></div> const button = document.querySelector("button"); function greet() { const name = prompt("What is your name?"); const greeting = document.querySelector("#greeting"); greeting.textContent = `Hello ${name}, nice to see you!`; } button.addEventListener("click", greet); See the Pen str-in-js by Hsoub Academy (@HsoubAcademy) on CodePen. استخدمنا في الشيفرة السابقة الدالة ()window.prompt التي تطلب من المستخدم اﻹجابة عن سؤال ضمن نافذة منبثقة يعرضها المتصفح، ويُخزّن النص الذي يكتبه ضمن متغيّر وهو name في حالتنا. ونعرض بعد ذلك نصًا يُظهر الاسم وقد أُدرج ضمن رسالة ترحيبية. دمج السلاسل النصية باستخدام "+" يمكن استخدام اﻷسلوب مع القوالب المفسّرة وليس مع السلاسل النصية النمطية، لكن باﻹمكان ضم سلسلتين نمطيتين باستخدام العامل +: const greeting = "Hello"; const name = "Chris"; console.log(greeting + ", " + name); // "Hello, Chris" لكن القوالب المفسرة تسهّل قراءة الشيفرة: const greeting = "Hello"; const name = "Chris"; console.log(`${greeting}, ${name}`); // "Hello, Chris" تضمين عبارات برمجية ضمن السلاسل النصية وذلك باستخدام القوالب المفسّرة كما هو حال المتغيرات وستدرج نتيجة تنفيذ العبارة البرمجية ضمن السلسلة النصية: const song = "Fight the Youth"; const score = 9; const highestScore = 10; const output = `I like the song ${song}. I gave it a score of ${ (score / highestScore) * 100 }%.`; console.log(output); // "I like the song Fight the Youth. I gave it a score of 90%." النص متعدد اﻷسطر تفسّر القوالب المفسّرة محرف الانتقال إلى سطر جديد وبالتالي يمكن استخدامها لكتابة السلسلة النصية على أكثر من سطر واحد لتسهيل قرائتها ولن يُعتبر الانتقال إلى سطر جديد نهاية عبارة برمجية ولن يولد ذلك أية أخطاء: const newline = `One day you finally knew what you had to do, and began,`; console.log(newline); /* One day you finally knew what you had to do, and began, */ ولتنفيذ الفكرة نفسها باستخدام السلاسل النصية النمطية لا بد من استخدام محرف الانتقال إلى سطر جديد (n\) ضمن السلسلة النصية وفي المكان الذي ينبغي الانتقال يه إلى السطر الجديد. إليك مثالًا: const newline = "One day you finally knew\nwhat you had to do, and began,"; console.log(newline); /* One day you finally knew what you had to do, and began, */ تضمين إشارة التنصيص ضمن سلسلة نصية طالما أننا نستخدم إشارات التنصيص لتحديد بداية ونهاية سلسلة نصية، فما الذي سنفعله إن احتجنا إلى وضع إشارة التنصيص ضمن نص أي أن تكون جزءًا من السلسلة النصية؟ نعرف طبعًا أنه أمر غير ممكن بالطريقة النمطية التالية: const badQuotes = "She said "I think so!""; ومن إحدى الطرق المتبعة لحل المشكلة استخدام نوع من علامات التنصيص ضمن السلسلة وآخر لتحديد بدايتها ونهايتها كالتالي: const goodQuotes1 = 'She said "I think so!"'; const goodQuotes2 = `She said "I'm not going in there!"`; أما الخيار اﻵخر فهو تجاوز escape إشارة التنصيص ضمن النص ويقصد بذلك إهمال وظيفتها كبداية أو نهاية السلسلة واعتبارها محرفًا عاديًا أي اعتبارها كنص وليس جزءًا من الشيفرة. لتنفيذ ذلك في جافا سكريبت نضع شرطة مائلة عكسية \ قبل المحرف الذي نريد تجاوزه. إليك مثالًا: const bigmouth = 'I\'ve got no right to take my place…'; console.log(bigmouth); بإمكانك استخدام نفس التقنية ﻹضافة محارف خاصة أخرى إلى النص. اﻷعداد مقابل السلاسل النصية ما الذي سيحدث إن حاولت ضم عدد إلى سلسلة نصية؟ لنجرّب ذلك: const name = "Front "; const number = 242; console.log(`${name}${number}`); // "Front 242" قد نتوقع ظهور رسالة خطأ لكن ذلك لا يحدث! في هذه الحالة يحوّل المتصفح اﻷعداد إلى نص تلقائيًا ومن ثم يضمها إلى النص. فإن كانت لديك متغير عددي تريد تحويل قيمته إلى نص أو نصي تريد تحويل قيمته إلى عدد، ستتمكن من ذلك باستخدام الدالتين String و Number. تحوّل الدالة ()Number القيمة التي تمرر إليها إلى عدد إن كان ذلك ممكنًا، جرّب ذلك: const myString = "123"; const myNum = Number(myString); console.log(typeof myNum); // number تحوّل الدالة ()Stringالقيمة التي تمرر إليها إلى نص، جرّب ذلك: const myNum2 = 123; const myString2 = String(myNum2); console.log(typeof myString2); // string ستجد أن هاتان الدالتان غاية في الأهمية في بعض المواضع، فعندما يُدخل المستخدم عددًا في حقل نصي على سبيل المثال، سيعامل العدد معاملة السلسلة النصية. لكن إن أردت استخدامه كعدد ﻹضافته إلى عدد آخر، لا بد من تمريره إلى الدالة ()Number لتتولى أمر تحويله إلى عدد. الخلاصة قدمنا في هذا المقال الأساسيات البسيطة للتعامل مع النصوص في جافا سكريبت وسنتابع في مقال قادم العمل شرح المزيد من التوابع الأصلية المضمنة في لغة جافا سكريبت والمخصصة للتعامل مع النصوص. ترجمة -وبتصرف- للمقال Handling text-strings in JavaScript اقرأ أيضًا المقال السابق: العمليات الرياضية على اﻷعداد في جافا سكريبت السلاسل النصية (strings) في جافاسكربت تصميم النّصوص البرمجيّة: تنظيم JavaScript توابع الأنواع الأولية (primitives methods) في جافاسكربت1 نقطة