في هذه المقالة ، سوف نشارككم 12 نصيحة حول JavaScript. قد تساعدك هذه النصائح في حل بعض المشكلات في عملك الفعلي.
استخدم !! المشغل لتحويل القيمة المنطقية
في بعض الأحيان ، نحتاج إلى التحقق مما إذا كان هناك متغير أو التحقق مما إذا كانت القيمة لها قيمة صالحة ، وإذا كانت موجودة ، فإنها تُرجع بشكل صحيح. من أجل القيام بهذا التحقق ، يمكننا استخدام !! المشغل لتنفيذ هو مريح للغاية وبسيط. للمتغيرات ، يمكنك استخدام !! متغير للكشف. طالما أن قيمة المتغير هي: 0 ، NULL ، "" ، غير محدد أو نان ، ستعود كاذبة ، وإلا فإنها ستعود بشكل صحيح. على سبيل المثال ، المثال التالي:
حساب الوظيفة (نقدي) {this.cash = cash ؛ this.hasmoney = !! // 100.50Console.log (account.hasmoney) ؛ // truevar فارغ = حساب جديد (0) ؛ console.log (فارغ cash.cash) ؛ // 0console.log (فارغ councount.hasmoney) ؛ // خطأ شنيعفي هذا المثال ، طالما أن قيمة الحساب. cash أكبر من 0 ، فإن القيمة التي تم إرجاعها بواسطة الحساب. hasmoney صحيحة.
استخدم + لتحويل السلاسل إلى الأرقام
هذه الخدعة مفيدة جدا. إنه بسيط للغاية ويمكن تحويله إلى أرقام عن طريق تقاطع بيانات السلسلة. ومع ذلك ، فهي مناسبة فقط لبيانات السلسلة ، وإلا سيتم إرجاع NAN ، مثل المثال التالي:
وظيفة tonumber (strnumber) {return +strnumber ؛} console.log (tonumber ("1234")) ؛ // 1234console.log (tonumber ("ACB")) ؛ // نانيعمل هذا أيضًا للتاريخ ، في هذه الحالة ، سيُرجع رقم الطابع الزمني:
console.log (+New Date ()) // 1461288164385
والشرطية
إذا كان لديك رمز مثل هذا:
إذا (مخروط) {login () ؛}يمكنك أيضًا اختصار المتغيرات واستخدامها && وتسلسلها معًا. على سبيل المثال ، يمكن اختصار المثال أعلاه على النحو التالي:
Conced && login () ؛
إذا كانت بعض الخصائص أو الوظائف موجودة في كائن ، فيمكنك أيضًا القيام بالكشف ، كما هو موضح في الكود التالي:
user && user.login () ؛
استخدم || المشغل
هناك ميزة المعلمة الافتراضية في ES6. لمحاكاة هذه الميزة في المتصفحات القديمة ، || يمكن استخدام المشغل وسيتم تمرير القيمة الافتراضية كمعلمة ثانية. إذا كانت القيمة التي يتم إرجاعها بواسطة المعلمة الأولى خاطئة ، فسيتم اعتبار القيمة الثانية قيمة افتراضية. كما في المثال التالي:
مستخدم الوظيفة (الاسم ، العمر) {this.name = name || "أوليفر كوين" ؛ this.age = العمر || 27 ؛} var user1 = new user () ؛ console.log (user1.name) ؛ // oliver queenconsole.log (user1.age) ؛ // 27var user2 = مستخدم جديد ("Barry Allen" ، 25) ؛ console.log (user2.name) ؛ // barry allenconsole.log (user2.age) ؛ // 25صفيف ذاكرة التخزين المؤقت. الطول في حلقة
هذه الحيلة بسيطة للغاية ، وسيكون لها تأثير كبير على الأداء عند التعامل مع حلقة صفيف كبيرة. في الأساس ، سوف يكتب الجميع مجموعة من التكرارات المتزامنة مثل هذا:
لـ (var i = 0 ؛ i <array.length ؛ i ++) {console.log (Array [i]) ؛}إذا كانت صفيفًا صغيرًا ، فهذا أمر رائع ، إذا كنت تتعامل مع صفيف كبير ، فسيقوم هذا الرمز بإعادة حساب حجم الصفيف في كل تكرار ، مما سيؤدي إلى بعض التأخير. لتجنب هذه الظاهرة ، يمكن استخدام Array.Length كذاكرة التخزين المؤقت:
var length = array.length ؛ for (var i = 0 ؛ i <length ؛ i ++) {console.log (Array [i]) ؛}يمكنك أيضًا كتابتها مثل هذا:
لـ (var i = 0 ، length = array.length ؛ i <length ؛ i ++) {console.log (Array [i]) ؛}اكتشف الخصائص في الكائنات
هذه الخدعة مفيدة عندما تحتاج إلى اكتشاف ما إذا كانت بعض الخصائص موجودة وتجنب تشغيل وظائف أو خصائص غير محددة. إذا كنت تخطط لتخصيص بعض رمز المتصفح المتوافق مع ذلك ، فيمكنك أيضًا استخدام هذه النصيحة. على سبيل المثال ، ترغب في استخدام المستند. FerySelection () لتحديد معرف وجعله متوافقًا مع متصفحات IE6 ، ولكن هذه الوظيفة غير موجودة في متصفحات IE6 ، لذلك من المفيد جدًا استخدام هذا المشغل لاكتشاف ما إذا كانت هذه الوظيفة موجودة ، مثل المثال التالي:
if ('QuerySelector' في المستند) {document.queryselector ("#id") ؛} آخر {document.getElementById ("id") ؛}في هذا المثال ، إذا كانت وظيفة QuerySelector غير موجودة في المستند ، فسيتم استدعاء المستند.
احصل على العنصر الأخير في المصفوفة
Array.Prototype.slice (تبدأ ، النهاية) يستخدم للحصول على عناصر الصفيف بين البداية والنهاية. إذا لم تقم بتعيين المعلمة النهائية ، فسيتم اعتبار قيمة الطول الافتراضي للمصفوفة القيمة النهائية. لكن بعض الطلاب قد لا يعرفون أن هذه الوظيفة يمكن أن تقبل أيضًا القيم السلبية كمعلمات. إذا قمت بتعيين قيمة سالبة كقيمة البداية ، فيمكنك الحصول على العنصر الأخير من الصفيف. يحب:
var array = [1،2،3،4،5،6] ؛ console.log (array.slice (-1)) ؛ // [6] console.log (array.slice (-2)) ؛ // [5،6] console.log (Array.Slice (-3)) ؛ // [4،5،6]
اقتطاع الصفيف
تستخدم هذه الخدعة بشكل أساسي لقفل حجم الصفيف ، وهي مفيدة للغاية إذا تم استخدامها لحذف بعض العناصر في الصفيف. على سبيل المثال ، تحتوي صفيفك على 10 عناصر ، لكنك تريد فقط الحصول على العناصر الخمسة الأولى فقط ، ثم يمكنك اقتطاع المصفوفة بواسطة Array.Length = 5. كما في المثال التالي:
var array = [1،2،3،4،5،6] ؛ console.log (array.length) ؛ // 6array.length = 3 ؛ console.log (Array.Length) ؛ // 3console.log (صفيف) ؛ // [1،2،3]
استبدل كل شيء
تتيح لك وظيفة string.replace () استخدام السلاسل أو التعبيرات العادية لاستبدال السلاسل. هذه الوظيفة نفسها تحل محل السلسلة الأولى فقط. ومع ذلك ، يمكنك استخدام /G في تعبيرات منتظمة لمحاكاة وظيفة وظيفة replaceall ():
var string = "John John" ؛ console.log (string.replace (/hn/، "ana")) ؛ // "Joana John" Console.log (string.replace (/hn/g ، "ana")) ؛ // "جوانا جوانا"
المصفوفات دمج
إذا كنت ترغب في دمج صفيفتين ، فستستخدم عادة وظيفة Array.Concat ():
var array1 = [1،2،3] ؛ var array2 = [4،5،6] ؛ console.log (Array1.Concat (Array2)) ؛ // [1،2،3،4،5،6] ؛
هذه الوظيفة غير مناسبة بعد ذلك لدمج صفيفتين كبيرتين ، لأنها ستستهلك الكثير من الذاكرة لتخزين المصفوفات التي تم إنشاؤها حديثًا. في هذه الحالة ، يمكنك استخدام Array.pus (). تطبيق (ARR1 ، ARR2) لإنشاء صفيف جديد بدلاً من ذلك. لا يتم استخدام هذه الطريقة لإنشاء مجموعة جديدة ، فهي تجمع فقط بين الأرقام الأولى والثانية معًا مع تقليل استخدام الذاكرة:
var array1 = [1،2،3] ؛ var array2 = [4،5،6] ؛ console.log (array1.push.apply (Array1 ، Array2)) ؛ // [1،2،3،4،5،6] ؛
تحويل Nodelist إلى صفيف
إذا قمت بتشغيل وظيفة المستند. FerySelectorAll ("P") ، فقد تقوم بإرجاع مجموعة من عناصر DOM ، أي الكائن Nodelist. لكن هذا الكائن لا يحتوي على وظائف الوظائف ، مثل SORT () ، تقليل () ، MAP () ، FILTER () ، وما إلى ذلك حتى يتم استخدام وظائف وظيفة الصفيف الأصلية هذه ، يجب تحويل قائمة العقدة إلى صفيف. يمكنك استخدام [] .slice.call (عناصر) للتنفيذ:
var elements = document.querySelectorAll ("p") ؛ // nodelistvar arrayelements = [] .slice.call (عناصر) ؛ // الآن The Nodelist هو arrayvar arrayelements = array.from (عناصر) ؛ // هذه طريقة أخرى لتحويل Nodelist إلى Arrayتقلص عناصر الصفيف
بالنسبة إلى خلط عناصر الصفيف ، ليست هناك حاجة لاستخدام أي مكتبات خارجية ، مثل Lodash ، فقط قم بذلك:
var list = [1،2،3] ؛ console.log (list.sort (function () {math.random () - 0.5})) ؛ // [2،1،3]لخص
لقد تعلمت الآن بعض نصائح JavaScript المفيدة. آمل أن تساعدك هذه النصائح في حل بعض المشاكل في العمل ، أو أن هذه المقالة ستكون مفيدة لك. إذا كان لديك بعض نصائح JavaScript الممتازة ، فيرجى مشاركتها معنا في التعليقات.
نصائح JavaScript العملية 12 أعلاه [الموصى بها] هي المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.