UglifyJS هي أداة لضغط وتجميل JavaScript. في وثائقها ، رأيت عدة طرق لتحسين البيانات. على الرغم من أنني لم أستخدمها لإجراء بعض الاختبارات التجريبية ، إلا أنه يمكننا أن نرى من هنا أنها تجميل JS. قد يعتقد بعض الناس أنه إذا كانت العبارات بسيطة ، فكم يمكن تحسينها؟ لكن انظر إلى الطرق التالية وقد تغير رأيك.
1. استخدم المشغلين الثلاثية المشتركة
إذا (foo) bar () ؛ آخر baz () ؛ ==> foo؟ bar (): baz () ؛
إذا (! foo) bar () ؛ آخر baz () ؛ ==> foo؟ baz (): bar () ؛
إذا (foo) return bar () ؛ عودة أخرى baz () ؛ ==> return foo؟ bar (): baz () ؛
من المؤكد أنك على دراية بالاستخدام أعلاه للمشغلين الثلاثية لتحسين البيانات ، وربما تستخدمها كثيرًا.
أمثلة قدمها wulin.com:
نسخة الكود كما يلي:
<script>
var i = 9
var ii = (i> 8)؟ 100: 9 ؛
تنبيه (II) ؛
</script>
نتيجة الإخراج:
100
2. استخدم و (&&) و OR (||)
إذا (foo) bar () ؛ ==> foo && bar () ؛
إذا (! foo) bar () ؛ ==> foo || bar () ؛
لأكون صادقًا ، لم أكتب رمزًا مثل هذا. لقد رأيت طريقة الكتابة هذه عندما كنت أدرس "Bird Bird's Linux Private Vegetable" ، لكنني لم أتوقع تنفيذها في JS.
3. حذف أقواس مجعد {}
إذا (foo) return bar () ؛ آخر شيء () ؛ ==> {if (foo) return bar () ؛ شئ ما()}
أنا معتاد على طريقة الكتابة هذه ، لكنني أقترح القيام بذلك عند تحسين الكود ، أو تركه إلى UglifyJS لمساعدتك في حلها. بعد كل شيء ، إذا كنت تفتقر إلى دعامة واحدة ، فإن الكود غير قابل للقراءة.
بعد أن كتبت هذا ، أفكر في طريقة من قبل والد jQuery في "إتقان JavaScript" للحصول على سمات عناصر HTML.
وظيفة getAttr (el ، attrname) {
var attr = {'for': 'htmlfor' ، 'class': 'className'} [attrname] || attrname ؛
} ؛
إذا لم نكتب بهذه الطريقة ، فقد نحتاج إلى استخدام اثنين إذا كان هناك بيانين لمعالجته ، ولم يكن الكود أعلاه موجزًا وفعالًا فحسب ، بل يمكن قراءته أيضًا.
إذا فكرت في الأمر بعناية ، فيمكننا إيجاد طرق فعالة لحل المشكلة في كثير من الحالات ، ولكن المفتاح هو ما إذا كنا حريصين على إيجاد طريقة أفضل.
【مهارات JavaScript】 الاختصار إذا (x == null)
إذا كان (x == null) أو إذا كان (typeof (x) == 'undefined') يمكن اختصاره كما لو (! x) ، ولم يتم التحقق منه.
على العكس من ذلك ، إذا كانت (x) تعني x ليست فارغة
تحديد ما إذا كان الكائن موجودًا
نسخة الكود كما يلي:
if (document.form1.softurl9) {
// احكم على ما إذا كان Softurl9 موجودًا لمنع أخطاء JS
}
نسخة الكود كما يلي:
if (document.getElementById ("softurl9")) {
// احكم على ما إذا كان Softurl9 موجودًا لمنع أخطاء JS
}
التجديد:
JavaScript || && اختصار إذا
نسخة الكود كما يلي:
<script type = "text/javaScript">
إذا كنت تريد الكتابة
إذا (! خطأ)
{
تنبيه ("خطأ") ؛
}
النظر في الكتابة:
خطأ || تنبيه ("خطأ") ؛
خطأ || تنبيه ("خطأ") ؛ صحيح || تنبيه ("حقيقي") ؛ // الإخراج false ؛
عند استخدام "||" ، يكون الشرط الأول صحيحًا ، ويتم إرجاع الحالة الثانية مباشرة دون اكتشاف الحالة الثانية. الشرط الأول خاطئ ، وسيتم إجراء اكتشاف الحالة الثانية.
false && ALERT ('false') ؛ True && ALERT ('true') ؛ // الإخراج صحيح
عند استخدام "&&" ، يكون الشرط الأول صحيحًا وسيتم اكتشاف الحالة الثانية. الشرط الأول خطأ ، ويعود مباشرة كاذبة للخروج.
باختصار ، التطبيق البسيط والعملي لاستبدال إذا ،؟ : التطبيق العملي لاستبدال إن آخر. اكتب رمزًا قصيرًا وموجزًا
الاستخدام:
$ ("#regform input [type! = Hidden]"). كل (
دالة (فهرس) {
$ (هذا) .parent () $ ('<viv> </viv>'). appendto ($ (this) .parent ()) ؛
}
) ؛
</script>