لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 03/07/23 في كل الموقع
-
2 نقاط
-
السلام عليكم لدي مشروع لطلاب مدرسة استخدمت فلتر django-filter لتصفية النتائج ولكن هناك مشكلة في تصدير النتائج حيث يقوم بتصدير كل الاسماء وليس فقط الناتجة من من التصفية class StudentFilterView(FilterView): model = Student filterset_class = StudentFilter2 template_name = 'employee_information/employees_filter.html' def export_student_csv(request): filter = StudentFilter2(request.GET, queryset=Student.objects.all()) filtered_queryset = filter.qs dataset = StudentResource().export(filtered_queryset) # Define the column names column_names = [ 'رقم التسجيل', 'الاسم', 'اسم الأب', 'تاريخ الميلاد', 'صفة التعيين', 'الجنس', 'تاريخ التعيين' ] response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'attachment; filename="employees.csv"' response.write(u'\ufeff'.encode('utf8')) # BOM (optional...Excel needs it to open UTF-8 file properly) writer = csv.writer(response, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL) writer.writerow(column_names) for row in dataset: writer.writerow(row) return response1 نقطة
-
السلام عليكم اخوتي احتاج عمل تنسيقات للscrollbar باستخدام الcss و شكرا جزيلا1 نقطة
-
السلام عليكم لدي سؤال ...لقد اختلطت علي الأمور نوعا ما فيما يخص دراسة CSS و HTML أو متابعة React مباشرة..فعندما قرات تعليقات الطلبة ورد الأساتذة. هناك من الأساتذة من يؤكد على دراستها والبعض الأخر يقول لا..مثلا هناك من قال أن html مثل jsx ومنه فلا داعي لدراستها .وأن اكمال React وطرح الأسئلة يكون كافي ...فماذا تنصحوني ؟ وشكرا1 نقطة
-
وعليكم السلام، أنا سعيدة بأنك تطرح هذا السؤال. فيما يتعلق بدراسة CSS و HTML، فهما جزء أساسي من تصميم وتطوير صفحات الويب. لذلك، يجب عليك دراسة هذه اللغات إذا كنت ترغب في أن تصبح مطور ويب محترف. أما بالنسبة لـ React، فهو إطار عمل جافاسكريبت يستخدم لتطوير واجهات المستخدم. إذا كان هدفك هو تطوير تطبيقات الويب المعقدة، فإن دراسة React ستكون ضرورية. لا يجب أن تعتبر HTML مثل JSX، حيث أن HTML هي لغة وصفية لتحديد بنية صفحات الويب، في حين أن JSX هو اختصار لـ JavaScript XML وهو جزء من React. إذا كان لديك الوقت والإمكانية، فأقترح عليك دراسة CSS و HTML قبل التحول إلى دراسة React. وإذا كان هدفك هو التخصص في React، فلا بأس بالانتقال مباشرة إلى دراسة React مع التأكد من فهم أساسيات JavaScript. أخيرًا، يجب عليك دائمًا طرح الأسئلة والاستفادة من خبراء المجال لضمان التقدُّم في مجال تطوير صفحات الويب.1 نقطة
-
مرحباً محمود عدل الوظائف الخاصة بإضافة مستخدم جديد للشكل التالي : async function fetchRandomUsers() { const response = await fetch('https://randomuser.me/api') const responseData = await response.json() const newUser = { user: `${responseData.results[0].name.first} ${responseData.results[0].name.first}`, // money: formatMoney(Math.floor(Math.random() * 1000000)) الكود القديم *************** money: Math.floor(Math.random() * 1000000) // الكود الجديد **************** } setData([newUser]); } // Add User const handleAdd = async () => { const response = await fetch('https://randomuser.me/api'); const responseData = await response.json(); const newUser = { user: `${responseData.results[0].name.first} ${responseData.results[0].name.last}`, // money: formatMoney(Math.floor(Math.random() * 1000000)) الكود القديم *************** money: Math.floor(Math.random() * 1000000) // الكود الجديد **************** }; setData([...data, newUser]); }; بحيث لا تقوم بفرمتت المال في هذه المرحلة، وإنما تقوم بفرمتته عند عرضه وذلك في المكون Main.jsx : import React from "react"; function Main({ data }) { // Format number as money function formatMoney(number) { return "$" + number.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, "$&,"); } return ( <div className='main'> <h2> <strong>Person</strong> Wealth </h2> {data.map((user, index) => ( <div key={index}> <h4 className='person'> <strong>{user.user}</strong> {formatMoney(user.money)} </h4> </div> ))} </div> ); } export default Main;1 نقطة
-
1 نقطة
-
NaN تنتج عن اجراء عملية حسابية بين نص ورقم وهي تعني (ليس رقماً) جرب تعديل الكود للشكل : // Double Money const doubleMoney = () => { const newData = data.map(user => { return {...user, money: Number(user.money) * 2} }); setData(newData); }; وجرب طباعة الـ user.money فإذا كانت تحتوي نصوص مثل $ أو غيرها فإنك بحاجة لحذف هذه النصوص قبل ضربها بـ 2. أما في هذه فالصفحة ترجع فارغة و لايظهر أي خطأ في الكونسول اعتقد ان سبب المشكلة هنا هو نفسه، حيث يبدو أن الـ item.money ليست رقماً قابل للمقارنة بل هي عبارة عن نص، ويجب عليك ان تقوم بطباعة الـ item.money للتأكد من اهنها رقم، وفي حال لم تكن رقماً يجب ان تحاول ان تحولها إلى رقم بحذف النصوص ثم استخدام الوظيفة : Number(item.money) واعتقد ان باقي المشاكل جميعها ترجع لنفس السبب، فعليك تحويل الـ money إلى رقم قبل اجراء كل هذه العمليات الحسابية. في حال لم تنجح بتحويل الـ money إلى رقم، ربما يكون من الافضل مشاركة ملفات المشروع بالكامل.1 نقطة
-
في هذه الحالة يرجع NaN بالنسبة للثروة أما في هذه فالصفحة ترجع فارغة و لايظهر أي خطأ في الكونسول هنا الصفحة لا تتغير و اليحدث ترتيب في هذه الحالة يظهر الخطأ التالي: App.js:23 Uncaught TypeError: number.toFixed is not a function at formatMoney (App.js:23:1) at calculateWealth (App.js:60:1) at HTMLUnknownElement.callCallback (react-dom.development.js:4164:1) at Object.invokeGuardedCallbackDev (react-dom.development.js:4213:1) at invokeGuardedCallback (react-dom.development.js:4277:1) at invokeGuardedCallbackAndCatchFirstError (react-dom.development.js:4291:1) at executeDispatch (react-dom.development.js:9041:1) at processDispatchQueueItemsInOrder (react-dom.development.js:9073:1) at processDispatchQueue (react-dom.development.js:9086:1) at dispatchEventsForPlugins (react-dom.development.js:9097:1)1 نقطة
-
الخطأ هو أنك لم تنسق الـ state بشكل صحيح، وعليه لم يتم تحديث الـ state بشكل صحيح عند استخدام الأزرار الأخرى. هناك عدة نقاط يجب مراجعتها: يجب عليك تحديث الـ state بشكل صحيح في كل دالة. على سبيل المثال، في دالة doubleMoney ، يتم تعيين قيمة جديدة لـ data بدلاً من تحديثها باستخدام setData. عند استخدام دالة fetchRandomUsers، يجب أن تقوم بإرجاع القيمة الجديدة (newUser) ، وإذا لم تقم بذلك فلن تتم إضافة اليوزر الجديد إلى الـ state. يجب عليك استخدام setData لتحديث الـ state بشكل صحيح في كل دالة. لضمان تحديث الـ state بشكل صحيح، يمكنك استخدام دالة useState بشكل صحيح. يجب تعيين دالة الـ filter و map إلى الـ state الجديد باستخدام setData، بدلاً من تغيير الـ state الحالي. وهنا بعض التغييرات التي يجب عليك إجراؤها لجعل الكود يعمل بشكل صحيح: const [data, setData] = useState([]); // Add User const handleAdd = async () => { const response = await fetch('https://randomuser.me/api'); const responseData = await response.json(); const newUser = { user: `${responseData.results[0].name.first} ${responseData.results[0].name.last}`, money: formatMoney(Math.floor(Math.random() * 1000000)) }; setData([...data, newUser]); }; // Double Money const doubleMoney = () => { const newData = data.map(user => { return {...user, money: user.money * 2} }); setData(newData); }; // Show Millionaires const showMillionaires = () => { const newData = data.filter(item => item.money > 500000); setData(newData); }; // Sort by richest const sortByRichest = () => { const newData = [...data].sort((a, b) => b.money - a.money); setData(newData); }; // Calculate entire wealth const calculateWealth = () => { const wealth = data.reduce((acc, user) => (acc += user.money), 0); alert(`Total wealth: ${formatMoney(wealth)}`); };1 نقطة
-
يمكنك تنفيز المطلوب باتباع الخطوات التالية: قم بإنشاء ملف الترجمة لكل لغة تريد دعمها في مجلد اللغات الخاص بالتطبيق، على سبيل المثال: resources/lang/en/products.php resources/lang/ar/products.php يجب أن يحتوي كل ملف لغة على مفاتيح الترجمة وقيمها المقابلة. قم بإنشاء ملف اللغة الافتراضية في config/app.php، مثل: 'locale' => 'en', قم بتثبيت حزمة laravel-translatable لإضافة دعم الترجمة لنموذج المنتج Product. انشئ مودل Product واستخدم السمة Translatable المقدمة من laravel-translatable لإضافة الحقول المترجمة: use Spatie\Translatable\HasTranslations; use Illuminate\Database\Eloquent\Model; class Product extends Model { use HasTranslations; public $translatable = ['name', 'description']; protected $fillable = ['name', 'description']; } في ملف الـ ProductController، قم بتحقق من صحة البيانات التي تم إرسالها من قبل المستخدم باستخدام الطريقة validate المدمجة في Laravel: public function store(Request $request) { $validatedData = $request->validate([ 'name' => 'required', 'description' => 'required', ]); $product = Product::create($validatedData); return redirect()->route('products.index'); } يمكنك إضافة حقول اللغة في النموذج الخاص بـ create باستخدام دالة translatable المتاحة في laravel-translatable: <form method="POST" action="{{ route('products.store') }}"> @csrf <label for="name">Name</label> <input type="text" name="name" id="name" value="{{ old('name') }}" required> @foreach(config('translatable.locales') as $locale) <label for="name_{{ $locale }}">Name ({{ strtoupper($locale) }})</label> <input type="text" name="name_{{ $locale }}" id="name_{{ $locale }}" value="{{ old('name_'.$locale) }}"> @endforeach <label for="description">Description</label> <textarea name="description" id="description" required>{{ old('description') }}</textarea> @foreach(config('translatable.locales') as $locale) <label for="description_{{ $ locale }}">Description ({{ strtoupper($locale) }})</label> <textarea name="description_{{ $locale }}" id="description_{{ $locale }}">{{ old('description_'.$locale) }}</textarea> @endforeach <button type="submit">Create</button> </form> ``` هذا الشكل سيظهر حقول اللغة التي تم تعريفها في نموذج Product، وسيتم حفظ القيم المدخلة لهذه الحقول في جدول اللغات المترجمة product_translations. لاستخراج القيم المترجمة لـ Product في الصفحات الأخرى، يمكنك استخدام دالة getTranslation المتاحة في laravel-translatable، مثل: {{ $product->getTranslation('name', 'en') }} هذا الشكل سيسترجع اسم المنتج المترجم باللغة الإنجليزية. يمكنك استخدام الدالة trans المدمجة في Laravel لترجمة النصوص في الصفحات، مثل: {{ __('products.name') }} هذا الشكل سيسترجع النص المترجم لـ "Name" الموجود في ملف الترجمة. في حالة إرسال النموذج، يجب تخزين القيم المدخلة في جدول اللغات المترجمة product_translations. يمكنك القيام بذلك باستخدام دالة setTranslation المتاحة في laravel-translatable، مثل: $product->setTranslation('name', 'en', $request->input('name_en')); $product->setTranslation('name', 'ar', $request->input('name_ar')); $product->setTranslation('description', 'en', $request->input('description_en')); $product->setTranslation('description', 'ar', $request->input('description_ar')); $product->save(); هذا الشكل يضيف القيم المدخلة لحقول اللغة المختلفة في جدول product_translations الخاص بـ Product. يمكنك عرض جميع المنتجات الموجودة في النظام مع قيمها المترجمة باستخدام الدالة translated المتاحة في laravel-translatable، مثل: @foreach($products as $product) <h2>{{ $product->translated('name') }}</h2> <p>{{ $product->translated('description') }}</p> @endforeach هذا الشكل سيعرض جميع المنتجات الموجودة في النظام مع اسم المنتج ووصفه المترجم.1 نقطة
-
يجب عليك إتقان مهارة البحث وتقليل الوقت اللازم لتحديد المعلومات التي تبحث عنها. إليك بعض النصائح حول كيفية استخدام Google كمطور برامج تعميم رسائل الخطأ : إذا كنت تتلقى رسالة خطأ ، لا تقم فقط بنسخه ولصقه في حقل البحث ، لأنه يحتوي على تسمية محددة للغاية. أولاً ، قم بتعميم النص بحيث يتطابق بشكل أفضل مع ما يبحث عنه الآخرون. أضف الكلمات الرئيسية ذات الصلةحاول تخمين المنطقة التي ترتبط بها المشكلة. هل هو إطار عمل؟ ربما هو خاص بلغة البرمجة؟ هل ظهرت بعد تثبيت مكتبة جديدة؟ أضف اسم المكتبة أو إطار العمل أو لغة البرمجة إلى استعلام البحث للحصول على نتائج أفضل. لا تنسخ وتلصق بشكل لأمر رائع أن تكون قد عثرت على جزء من التعليمات البرمجية التي تحل مشكلتك. . من الأفضل قضاء بضع دقائق في قراءة الكود الذي حصلت عليه من الإنترنت والتفكير في: هل هو آمن من منظور الأمن السيبراني؟تأكد من الالتزام بشروط الاستخدام واتفاقيات الترخيص التي يتم وضعها عند نسخ الكود هل هناك أي آثار جانبية لهذا الكود ؟الآن عندما ترى كيف قام شخص آخر بذلك ، هل يمكنك القيام بذلك على النحو الأمثل لحالتك الخاصة؟هل وظيفة المتغير والأسماء الأخرى ذات صلة بالكود الخاص بك وتتوافق مع سياسة التسمية الخاصة بك؟هل يحتاج هذا الكود إلى إعادة هيكلة ليناسب الكود المحيط به بشكل أفضل؟1 نقطة
-
بالنسبة لأول سؤال. يمكن لموسوعة حسوب أن توفر لك معلومات كافية ومفصلة عن العديد من المفاهيم البرمجية، ولكنها لا تغني عن الاطلاع على مصادر أخرى واستخدام مختلف الأدوات والمصادر لتعلم هذه المفاهيم. من الأدوات التي يمكن استخدامها لتعلم المفاهيم البرمجية والحصول على معلومات موثوقة هو محرك البحث جوجل. يمكنك البحث عن المفاهيم التي تريد تعلمها باستخدام كلمات مفتاحية مثل "JavaScript Prototype"، "JavaScript Inheritance" أو "JavaScript Promise Object" والتعرف على مصادر متعددة مثل مقالات، دروس فيديو، كتب، وأكثر. فمن خلال عملية البحث من عدة مصادر ستتعلم الكثير من الأشياء في الطريق مقارنًة بالإعتماد على مصدر واحد، لكن دائمًا اعتمد في تعلم الدورات على مصدر واحد أي لا تتنقل بين الكورسات دون الإنتهاء منها فذلك سيضرك جدًا عند تعلم البرمجة، كفى بالمرء تشتيتًا في أيامنا هذه! بالنسبة للسؤال الثاني. فإن مهارة البحث الاحترافي هي مهارة مهمة جداً في مجال التقنية، ويمكنك القول أنها مسألة حياة أو موت بالنسبة للمبرمج!، حيث تمكنك من الوصول إلى المعلومات والحلول بشكل أسرع وأكثر دقة. ولتعلم هذه المهارة، يمكنك اتباع الخطوات التالية: تحديد المصادر الموثوقة: عند البحث عن معلومات تقنية، يجب عليك الاعتماد على مصادر موثوقة ومعتمدة مثل المواقع الرسمية للشركات والمؤسسات التقنية، والمنتديات الخاصة بالمجال التقني، والمواقع العلمية والأكاديمية. استخدام الأدوات الصحيحة: يجب عليك الاستفادة من الأدوات المتاحة للبحث مثل محركات البحث، وقواعد البيانات، والمكتبات الرقمية، وتعلم كيفية استخدامها بشكل فعال. مثال عن اختيار الموقع المناسب عمومًا: يمكن استخدام مواقع مختلفة حسب الغرض من البحث، مثل اليوتيوب للحصول على إجابات سريعة، و Reddit للبحث عن روابط التحميل وغيرها من المعلومات فهو كنز يغفل عن الكثير وبه مجتمعات نشطة جدًا أيضًا في البرمجة، و Goodreads للكتب والمراجعات. البحث عن الكلمات المفتاحية: يجب عليك تحديد الكلمات المفتاحية المناسبة لموضوع البحث الخاص بك، والتي تساعدك على الوصول إلى المعلومات المناسبة. تحليل النتائج: يجب عليك تحليل النتائج التي تحصل عليها من البحث، والتأكد من صحتها وموثوقيتها. استخدام اختصارات البحث: استخدم العلامات المفيدة أثناء البحث، مثل and و or وعلامات التنصيص. وإليك أمثلة: عند البحث عن كلمتين متتاليتين لهما علاقة ببعض يمكن استخدام العلامة (+) أو الكلمة (AND). عند البحث عن كلمة معينة مرتبطة بكلمة أخرى مع الرغبة في البحث عن الكلمة الأولى فقط يمكن استخدام العلامة (-)، وفي هذه الحالة سيقوم بإستثناء الكلمة الثانية. إذا كنت تريد البحث عن كلمة معينة مرتبطة بكلمة أخرى ولكنك تريد البحث عن الكلمة الأولى فقط، يمكنك استخدام العلامة (-)، وفي هذه الحالة سيقوم بإستثناء الكلمة الثانية. عند البحث عن كلمتين أو جملتين ليستا مرتبطتين ببعضهما يمكن استخدام (OR). عند البحث عن موضوع معين داخل موقع معين، يمكن استخدام الكلمة (:site). في حالة عدم تذكر كلمة من الكلمات التي نبحث عنها، يمكن استخدام العلامة (*). عندما نريد معرفة التوقيت المحلي الخاص بكل دولة، يمكن استخدام (+time). عند البحث عن شئ بصيغة معينة على هيئة ملفات pdf أو برامج word، يمكن استخدام كلمة (filetype). عند البحث عن مقالات وأبحاث علمية بحتة ومصادر مختلفة، يمكن استخدام (Google scholar). التدريب والممارسة: تعتبر مهارة البحث الاحترافي مهارة تتطلب تدريبا وممارسة مستمرة. عندما تبدأ في البحث عن أي مفهوم جديد، يجب عليك أن تكون على دراية بالمصادر التي يمكنك الاعتماد عليها، وتشمل ذلك المواقع والمنتديات والمدونات التي تحتوي على المعلومات المفيدة. يمكنك الاعتماد على مواقع مثل Stack Overflow وMDN Web Docs وW3Schools وغيرها من المصادر الموثوقة لتعلم البرمجة والويب. بالإضافة إلى ذلك، يمكنك الانضمام إلى مجتمعات المطورين والبرمجيات عبر الإنترنت والتواصل مع الخبراء في مجال البرمجة وتبادل الأفكار والخبرات معهم. يمكنك أيضًا حضور الندوات والمؤتمرات المتعلقة بالبرمجة والتعلم من الخبراء الموجودين فيها. بالنسبة للتدريب الفعلي يمكنك إنشاء مشاريع برمجية صغيرة وتطبيق ما تعلمته عليها، وذلك لتحسين مهاراتك البرمجية وتطوير خبرتك. كما يمكنك الانضمام إلى مشاريع مفتوحة المصدر والمساهمة فيها، والتعرف على أساليب العمل والأدوات التي تستخدمها مجتمعات المطورين الأخرى. بشكل عام، يجب أن تكون البحث والتعلم والتدريب والممارسة مستمرين في عالم البرمجة، ويجب أن تسعى دائمًا إلى تحسين مهاراتك وزيادة خبرتك في هذا المجال. بالنسبة للمفاهيم البرمجية التي تريد استيعابها Prototype: Prototype هو عبارة عن خاصية في جافاسكريبت تُستخدم لإضافة خصائص جديدة إلى كائن موجود. وعندما يتم إضافة خاصية جديدة إلى الـ prototype ، فإنها تصبح متاحة لجميع الكائنات المشتقة من نفس الكائن الأصلي. مثال: function Animal(name) { this.name = name; } Animal.prototype.getName = function() { return this.name; }; let dog = new Animal('Rex'); console.log(dog.getName()); // الإخراج: 'Rex' سأشرح لك المزيد لأهمية ذلك المفهوم في جافا سكريبت. في جافاسكريبت، كل شيء هو Object، ويمكننا إنشاء Object جديدة باستخدام الكلمة الرئيسية "new". وعند إنشاء Object جديدة، فإنه يتم إنشاء سلسلة من الـPrototype objects التي تتشارك فيما بينها بالمعلومات. ببساطة، Prototype هو عبارة عن Object template يتم استخدامه لإنشاء Object جديدة. ويحتوي Prototype على خصائص وأساليب (methods) يتم مشاركتها بين جميع الObjects التي تم إنشاؤها باستخدام الـPrototype نفسه. على سبيل المثال، لنفترض أن لدينا Object template يسمى "Person" يحتوي على الخصائص name و age و methods تستخدم لطباعة البيانات الخاصة بـ Person. يمكننا إنشاء Object جديدة باستخدام الـPrototype "Person" كالتالي: // إنشاء Prototype let Person = function(name, age) { this.name = name; this.age = age; } Person.prototype.printInfo = function() { console.log("My name is " + this.name + " and I am " + this.age + " years old."); } // إنشاء Object جديدة باستخدام الـPrototype "Person" let person1 = new Person("Ahmed", 25); person1.printInfo(); // "My name is Ahmed and I am 25 years old." هنا، تم إنشاء Prototype جديد "Person" يحتوي على خصائص name و age، بالإضافة إلى method "printInfo" الذي يقوم بطباعة بيانات الـPerson. وتم إنشاء Object جديد باستخدام الـPrototype "Person" باستخدام الكلمة الرئيسية "new"، وتم استخدام method "printInfo" الموجود في الـPrototype لطباعة بيانات Object الجديدة. Inheritance: Inheritance هو مفهوم برمجي يسمح لك بإنشاء كائنات جديدة من خلال استخدام كائنات موجودة. وعند استخدام inheritance، يتم تمرير خصائص وأساليب الكائن الأصلي إلى الكائن الجديد المشتق. مثال: function Animal(name) { this.name = name; } Animal.prototype.getName = function() { return this.name; }; function Dog(name, breed) { Animal.call(this, name); this.breed = breed; } Dog.prototype = Object.create(Animal.prototype); Dog.prototype.constructor = Dog; Dog.prototype.getBreed = function() { return this.breed; }; let dog = new Dog('Rex', 'German Shepherd'); console.log(dog.getName()); // الإخراج: 'Rex' console.log(dog.getBreed()); // الإخراج: 'German Shepherd' Promise object: Promise object هو عبارة عن كائن في جافاسكريبت يتم استخدامه لإجراء أنشطة غير متزامنة (asynchronous)، مثل الاستدعاءات الخادم والعمليات الطويلة الأخرى. ويعد Promise object واحدًا من أساليب تحسين أداء التطبيقات في جافاسكريبت. مثال: function getData() { return new Promise(function(resolve, reject) { setTimeout(function() { resolve('Data is fetched!'); }, 2000); }); } getData() .then(function(data) { console.log(data); // الإخراج: 'Data is fetched!' }) .catch(function(error) { console.error(error); });1 نقطة
-
موسوعة حاسوب هي الأفضل عربياً وغنية بكم كبير من المعلومات ويمكنك الاعتماد عليها على الرغم من أن مهارات البحث تكتسب بالممارسة والخبرة، وسرعة الاستفادة من عمليات البحث على الإنترنت تعتني بطبيعة المصادر التي نتابعها ومستقصيها، فإن هنالك العديد من الأدوات البسيطة على لوحة المفاتيح التي تسهّل هذه العملية بصورة غير مسبوقة، ومنها : استخدام علامة (+) أو كلمة (AND) عند البحث عن كلمتين متتاليتين لهما علاقة ببعض. استخدام علامة (-) عند البحث عن كلمة معينة مرتبطة بكلمة أخرى مع رفبتنا في البحث عن الكلمة الأولى فقط. في هذه الحالة سيقوم باستثناء الكلمة الثانية. استخدام علامة (-) عند البحث عن كلمة معينة مرتبطة بكلمة أخرى لكننا نرغب في البحث عن الكلمة الأولى فقط. في هذه الحالة سيقوم باستثناء الكلمة الثانية. استخدام (OR) عند البحث عن كلمتين أو جملتين ليسوا مع بعضهما البعض. استخدام كلمة (:site) عن البحث عن موضوع معين داخل موقع معين. استخدام (*) في حالة عدم تذكر كلمة من الكلمات التي نبحث عنها. استخدام (+time) حين نريد أن نعرف التوقيت المحلي الخاص بكل دولة. استخدام filetype عند البحث عن شئ بصيغة معينة على هيئة ملفات pdf أو برامج word. استخدام (Google scholar) عند البحث عن مقالات وأبحاث علمية بحتة ومصادر مختلفة. انظر هذا الرابط للمزيد من النصائح: https://support.google.com/websearch/answer/134479?hl=ar وبالنسبة للمواضيع التي تتحدث عنها فهي ببساطة كالتالي: Prototype هو آلية في JavaScript تسمح بإضافة وتعديل الخصائص والأساليب على كائن موجود مسبقًا. كل كائن في JavaScript لديه خاصية prototype التي تمكن المطورين من إضافة خصائص جديدة إليه. عندما يتم البحث عن خاصية في كائن، يتم البحث في خصائص الكائن أولا، وإذا لم يتم العثور عليها، فسيتم البحث في prototype الخاص به. Inheritance هي آلية في JavaScript تسمح بإنشاء كائنات جديدة باستخدام خصائص وأساليب كائن موجود مسبقًا. يتم القيام بذلك عن طريق إنشاء وراثة للكائن الأصلي وتحديد الكائن الجديد باعتباره الكائن الفرعي. يمكن للكائن الفرعي إضافة خصائص وأساليب جديدة أو تعديلها دون تأثير على الكائن الأصلي. Promise Object هو كائن في JavaScript يتم استخدامه للتعامل مع العمليات الغير متزامنة، مثل الطلبات من الخادم أو العمليات الحسابية الثقيلة. يتم استخدام promise لتنظيم تدفق العمليات، حيث يمكن تحديد ما يجب القيام به بعد الانتهاء من العملية. يمكن استخدام then() لتحديد الإجراءات التي يجب القيام بها بعد الانتهاء من العملية، و catch() للتعامل مع الأخطاء التي قد تحدث أثناء العملية.1 نقطة
-
نعم هي كافية بدرجة كبيرة بالنسبة لـ JavaScript ويمكنك الاعتماد عليها تماما إن كنت تريد موسوعة عربية وهي الافضل في الساحة العربية. والموسوعة في تطور مستمر ويتم تحديثها باستمرار. نعم بالفعل يوجد مثل هذه الدورات والكورسات ويمكنك الوصول إليها عبر الانترنت وإن كنت شخصياً افضل قراءة التوثيق المقدم من support.google وهو يتوفر باللغة العربية. يمكنك الوصول إليه من هنا وإذا كنت تحاول الوصول إلى شرح لفكرة معينة من الدورة فيمكنك البحث في محرك البحث الخاص بالأكاديمية نفسها وقد تجد مقالاً او اكثر يتحدث عن الفكرة التي تحاول فهمها وهذه مجموعة من المقالات الموجودة بالفعل على الأكاديمية والتي تناقش المفاهيم التي ذكرتها أما بالنسبة للمواضيع التي تحدثت عنها فهذه بعض المقالات التي قد تفيدك فيها : وبالنسبة للـ inheritance و الـ Prototype :1 نقطة