جافا سكريبت و لماذا حروف أحيانا تعمل وأحيانا لا

StackOverflow https://stackoverflow.com/questions/87934

سؤال

في Notepad++, كنت أكتب ملف جافا سكريبت و أن شيئا ما لم يعمل:تنبيه إلى أن تظهر عندما تم النقر على زر ، لكنه لم يكن العامل.

أنا استخدمت الإكمال التلقائي المساعد المقدمة مع Notepad++, الذي قدم لي onClick.

عندما غيرت العاصمة C صغير c, لم تعمل.

لذلك أولا وقبل كل شيء ، عندما تبحث في وظائف في الإكمال التلقائي, لقد لاحظت الكثير من المهام باستخدام العواصم.

ولكن عند تغيير getElementById إلى getelementbyid, ، يمكنك أيضا الحصول على خطأ, و لجعل الأمور أسوأ ، دليل من المدرسة يكتب كل الاشياء مع حروف ولكن الحلول هي كل ذلك في الحروف الصغيرة.

فما هو مع جافا سكريبت و انتقائية الطبيعة نحو الوظائف التي يمكن أن يكون حروف فيها و التي لا يمكن ؟

هل كانت مفيدة؟

المحلول

جافا سكريبت دائما حساسة لحالة الأحرف, html لا.

يبدو كما ظننت أنك تتحدث عن ما إذا كانت سمات html (مثلonclick) أو غير حساسة لحالة الأحرف.الجواب هو أن الصفات ليست حساسة لحالة الأحرف ، ولكن الطريقة التي يمكننا الوصول إليها من خلال دوم.لذا يمكنك القيام بذلك:

<div id='divYo' onClick="alert('yo!');">Say Yo</div> // Upper-case 'C'

أو:

<div id='divYo' onclick="alert('yo!');">Say Yo</div> // Lower-case 'C'

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

getElementById('divYo').onclick = function() { alert('yo!'); }; // Lower-case 'C'

ولكن لا يمكنك أن تفعل هذا:

getElementById('divYo').onClick = function() { alert('yo!'); }; // Upper-case 'C'

تحرير:CMS يجعل كبيرة لدرجة أن معظم دوم الأساليب والخصائص في camelCase.الاستثناء الوحيد الذي يتبادر إلى الذهن هل معالج الحدث خصائص هذه هي المقبولة عموما أن يكون من الخطأ أن نعلق على الأحداث على أي حال.يفضل استخدام addEventListener كما في:

document.getElementById('divYo').addEventListener('click', modifyText, false);

نصائح أخرى

عدد قليل من الأشياء أي ليست دائما قضية حساسة ، بما في ذلك بعض/معظم/جميع ActiveX -- لماذا كل XHR.onReadyStateChange و XHR.onreadystatechange سوف تعمل بشكل جيد في IE5 أو IE6, ولكن هذا الأخير إلا أن العمل مع الأم مدعوم الكائن في IE7, FF, الخ.

ولكن مرجع سريع "القياسية"API الغلاف:

  • الأحرف الكبيرة - الثوابت (عموما رمزية ، منذ const ليس عالميا معتمدة)
  • رسملتها - الطبقات/الكائن وظائف
  • صغيرة - الأحداث
  • camelCase - كل شيء آخر

أي ضمانات 100%.ولكن الغالبية العظمى الحكيم ، هذا غير دقيقة.

جافا سكريبت API طرق هي تقريبا كل ما lowerCamelCase أسماء جافا سكريبت حالة الأحرف

جافا سكريبت يجب أن دائما تكون القضية الحساسة ، ولكن رأيت الحالات في Internet Explorer حيث أنها تتسامح مع كل حالة العلوي لبعض أسماء الوظائف ولكن لا الآخرين.أعتقد أنه يقتصر على الوظائف التي توجد أيضا في Visual Basic ، كما أن هناك بعض الغريب زواج الأقارب بين المترجمين.ومن الواضح أن هذا السلوك ينبغي تجنبها ، ما لم يكن بالطبع لديك نية لجعل الكود هذا يعمل فقط في متصفح واحد :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top