لقد وجدت اليوم سؤالًا عن GitHub حول كيفية استخدام JavaScript بشكل صحيح لتطوير برنامجنا. لقد توصلت إلى خجل بأصل ... إنها عملية احتيال. دعونا نشاركها معك.
نهج معقول في الغالب لجافا سكريبت.
الأنواع // النوع
كائنات // كائنات
المصفوفات // المصفوفات
سلاسل // الأوتار
وظائف // وظائف
الخصائص // الخصائص
المتغيرات // المتغيرات
رفع // تحسين متغير
التعبيرات الشرطية والمساواة // التعبيرات الشرطية والمساواة.
كتل // كود الحظر
التعليقات // التعليقات
مساحة البيضاء // الفضاء
فواصل // الفواصل
Semicolons // Semicolons
اكتب الصب والإكراه // نوع التحويل
اتفاقيات التسمية // قواعد التسمية
الوصول // الوصول
البنائين // البنائين
الأحداث // الوقت
الوحدات النمطية //
jQuery //
Ecmascript 5 توافق // ECMA 5 التوافق
اختبار // الاختبار
الأداء // الأداء
الموارد // الموارد
في البرية
ترجمة
دليل دليل نمط JavaScript
المساهمين
رخصة
الأنواع (النوع)
النوع البدائي: عند الوصول إلى نوع بدائي ، فإنه في الواقع يصل مباشرة إلى محتويات النوع البدائي.
خيط
رقم
منطقية
باطل
غير محدد
var foo = 1 ،
شريط = فو ؛
شريط = 9 ؛
console.log (foo ، bar) ؛ // => 1،9
النوع المعقد: عند الوصول إلى نوع بيانات النوع المعقد ، يمكنك الوصول بالفعل إلى قيمة المتغير من خلال مرجع.
هدف
صفيف
وظيفة
var foo = [1،2] ؛ bar = foo ؛ bar [0] = 9 ؛ console.log (foo [0] ، bar [0]) ؛ // => 9،9
كائن (كائن)
استخدم الكائن الحرفي لإنشاء كائنات (حرفية)
// badvar item = new Object () ؛ // goodvar item = {} ؛لا تستخدم الكلمات الرئيسية المحجوزة كاسم خاصية الكائن. هذا لن يعمل تحت IE8.
// badvar superman = {default: {clark: 'kent'} ، private: true} ؛ // goodvar superman = {defaults: {clark: 'kent'} ، hidden: true} ؛صفيف (صفيف)
استخدم أيضًا الطريقة الحرفية لإنشاء صفيف
// badvar stems = new array () ؛ // goodvar heads = [] ؛
إذا كنت لا تعرف طول الصفيف ، فاستخدم طريقة Array المدمجة في تشغيل الإدراج
var somestack = [] ؛ // badsomestack [somestack.length] = 'Vein' ؛ // goodsomestack.push ('الوريد') ؛عندما تريد نسخ صفيف ، استخدم Array.slice
var len = items.length ، // يشير إلى المحتوى أعلاه ... itemCopy = [] ، i ؛ // badfor (i = 0 ؛ i <len ؛ ++ i) {itemCopy [i] = items [i] ؛} // goodItemCopy = items.slice () ؛ // أحتاج إلى الانتباه هنا. أنا حقا لا أعرف هذا ...سلسلة السلاسل
استخدم عروض أسعار واحدة لإحاطة سلاسل ... // لم أجد تفسيرًا مناسبًا للأداء هنا ، أود شخصياً استخدامه مثل هذا ، (من الأفضل ارتداء أقل من ارتداء ... أنت تعرف ...)
// badvar name = "bob parr" ؛ // goodvar name = 'bob parr' ؛ // badvar fullname = "bob" + this.lastname ؛ // goodvar fullname = 'bob' + this.lastname ؛
عندما تكون الأوتار أطول من 80 حرفًا ، تحتاج إلى استخدام سلسلة متسلسل للكتابة على خطوط متعددة. لاحظ أنه إذا كان الإفراط في الاستخدام ، فإن تسلسل السلاسل سيؤثر على الأداء.
// badvar errormessage = 'هذا خطأ طويل للغاية تم إلقاؤه بسبب باتمان. عندما تتوقف عن التفكير في مدى علاقة باتمان بهذا ، لن تصل إلى أي مكان سريع. عندما تتوقف عن التفكير في كيف كان لدى باتمان أي شيء للقيام به /مع هذا ، لن تصل إلى أي مكان /سريع. عندما تتوقف عن التفكير في كيف كان لدى باتمان أي شيء للقيام به " +" مع هذا ، فلن تحصل على أي مكان سريع. "؛
إذا قمت بإنشاء صفيف بطريقة مخططة ، مثل ما يلي. باستخدام Array.join سيعمل بشكل أفضل ..
VAR عناصر ، الرسائل ، الطول ، i ؛ الرسائل = [{stat: 'success' ، message: 'هذا واحد عملت'} ، {stat: 'success' ، message: 'هذا واحد عملت'} ، {stat: 'success' ، message: 'this with "}}] "<li> ' + الرسائل [i] .message +' </li> '؛} إرجاع العناصر +' </ul> '؛} // goodfunction الوارد (الرسائل) {item = [] ؛ for (i = 0 ؛ i <length ؛ i ++) {items [i] = messages [i] .message ؛ '</li> </ul>' ؛}وظائف
// التعبير المجهول للدالة .. var Anonymous = function () {return true ؛} ؛ // name function expression.var named = function same () {return true ؛} ؛لا تحدد أبدًا الوظائف في رمز كتلة غير الوظيفة (إذا ، بينما). في المقابل ، يتم تعيين الوظيفة إلى الاسم المتغير الخارجي في منتصف كتلة الكود.
// badif (currentUser) {function test () {console.log ('nope.') ؛}} // goodvar test ؛ if (currentUser) {test = function () {console.log ('yup') ؛ } ؛ // كن حذرا مع شبه الكولون.}الخصائص (الخصائص)
استخدم بناء جملة DOT للوصول إلى الخصائص.
var luke = {jedi: true ، العمر: 28} ؛ // badvar isjedi = luke ['jedi'] ؛ // goodvar isjedi = lucky.jedi ؛عند الوصول إلى خصائص الكائن باستخدام المتغيرات ، استخدم [] قوسين مربعة للوصول
var luke = {jedi: true ، العمر: 28} ؛ وظيفة getProp (prop) {return luke [prop] ؛} var isjedi = getProp ('jedi') ؛