أفضل الممارسات لاستخدام العبارات الشرطية في JavaScript
تشرح هذه المقالة أفضل الممارسات لاستخدام العبارات الشرطية في JavaScript۔
YouTube Video
أفضل الممارسات لاستخدام العبارات الشرطية في JavaScript
تعد عبارات if
هيكل تحكم أساسي في برامج JavaScript.۔ ومع ذلك، مع تعقيد الكود، قد يزداد عدد عبارات if
، مما يجعل الكود أكثر صعوبة في القراءة.۔ هذه المرة، سنتعمق في أفضل الممارسات لتصميم عبارات if
بشكل صحيح في JavaScript لتحسين القراءة وسهولة الصيانة.۔
قم بتبسيط الكود باستخدام العلامات.
قم بتبسيط الشروط التي تتضمن معايير متعددة باستخدام القيم البوليانية۔
أمثلة لتجنبها
1// Bad Example
2if (isUserLoggedIn && user.hasPaymentInfo && user.cartItems.length > 0) {
3 console.log('Proceed to checkout');
4}
أمثلة محسنة
استخدم العلامات لتوضيح الشروط۔
1// Good Example
2const canProceedToCheckout = isUserLoggedIn && user.hasPaymentInfo && user.cartItems.length > 0;
3
4if (canProceedToCheckout) {
5 console.log('Proceed to checkout');
6}
اجعل العبارات الشرطية بسيطة
عندما تصبح العبارة الشرطية معقدة، تقل قراءة الكود، لذلك من الضروري أن تبقى الحالة بسيطة۔
أمثلة لتجنبها
1// Bad example
2if (user && user.isLoggedIn &&
3 user.permissions && user.permissions.includes('admin')) {
4 console.log('Welcome, admin!');
5}
أمثلة محسنة
من خلال تقسيم الشرط إلى متغيرات ذات معانٍ محددة، يمكنك توضيح الغرض منه۔
1// Good Example
2const isUserLoggedIn = user?.isLoggedIn;
3const hasAdminPermission = user?.permissions?.includes('admin');
4
5if (isUserLoggedIn && hasAdminPermission) {
6 console.log('Welcome, admin!');
7}
وضّح أسبقية العوامل المنطقية
في عبارات if
في JavaScript، يمكن أن يؤدي سوء فهم أسبقية العوامل المنطقية إلى سلوك غير مقصود.۔
أمثلة لتجنبها
1// Bad example
2if (isAdmin && isActive || isPremium) {
3 // The precedence of `&&` is higher than `||`,
4 // so this expression is interpreted as
5 // ((isAdmin && isActive) || isPremium)
6 console.log("Access granted");
7} else {
8 console.log("Access denied");
9}
أمثلة محسنة
عندما تكون أسبقية العوامل غير واضحة، يمكنك استخدام الأقواس بشكل مناسب للتوضيح.۔
1// Good Example
2if (isAdmin && (isActive || isPremium)) {
3 console.log("Access granted");
4} else {
5 console.log("Access denied");
6}
استخدام التقييم القصير الدائرة
يدعم JavaScript التقييم قصير الدائرة لكل من العامل &&
(AND) والعامل ||
(OR)۔ يعني التقييم قصير الدائرة أنه عندما يتم تحديد نتيجة الشرط أثناء التقييم، لا يتم تقييم الجزء المتبقي۔
AND
(&&
): إذا تم تقييم الجانب الأيسر كقيمة زائفة، فلن يتم تقييم الجانب الأيمن وسيُعاد قيمته۔OR
(||
): إذا تم تقييم الجانب الأيسر كقيمة صادقة، فلن يتم تقييم الجانب الأيمن وسيُعاد قيمته۔
أمثلة لتجنبها
1// Bad Example
2if (user?.someComplexFunction() && user?.isLoggedIn) {
3 // ...
4}
أمثلة محسنة
في هذا الكود، يتم استدعاء الدالة user?.someComplexFunction()
حتى إذا كانت قيمة user?.isLoggedIn
هي false
۔
يمكن أن يساعدك فهم التقييم قصير الدائرة على تجنب العمليات الحسابية غير الضرورية وكتابة كود أكثر كفاءة۔
1// Good Example
2if (user?.isLoggedIn && user?.someComplexFunction()) {
3 // ...
4}
قلل من استخدام عبارات else
يمكن أن تزيد عبارات else
من العبء المعرفي عند تتبع الكود۔ بدلاً من ذلك، فكر في استخدام الإرجاع المبكر۔
أمثلة لتجنبها
1// Bad Example
2function getUserRole(user) {
3 if (!user) {
4 return 'Guest';
5 } else {
6 return user.role;
7 }
8}
أمثلة محسنة
قم بتوضيح الشروط باستخدام الإرجاع المبكر۔
1// Good Example
2function getUserRole(user) {
3 if (!user) return 'Guest';
4 return user.role;
5}
الاستخدام الصحيح لعامل الشرط الثلاثي
بالنسبة للظروف البسيطة، يمكن أن يؤدي استخدام المشغل الثلاثي إلى تقصير الكود۔ ومع ذلك، تجنب التعشيش أو المنطق المعقد۔
أمثلة لتجنبها
1// Bad Example
2let message = user.isLoggedIn ? user.isAdmin ?
3 'Welcome, admin!'
4 : 'Welcome, user!'
5 : 'Please log in.';
أمثلة محسنة
قم بإعطاء الأولوية للوضوح من خلال تقسيم الشروط۔
1// Good Example
2if (!user.isLoggedIn) {
3 message = 'Please log in.';
4} else if (user.isAdmin) {
5 message = 'Welcome, admin!';
6} else {
7 message = 'Welcome, user!';
8}
استخدام القيم الافتراضية والتقييم القصير الدائرة
استخدم القيم الافتراضية والتقييم المختصر لتقليل التفرعات وتبسيط الكود۔
أمثلة لتجنبها
1// Bad Example
2let displayName;
3if (user && user.name) {
4 displayName = user.name;
5} else {
6 displayName = 'Guest';
7}
أمثلة محسنة
في هذه الحالة، يجعل استخدام العوامل المنطقية الأمر أكثر اختصاراً.۔
1// Good Example
2displayName = user?.name || 'Guest';
فرق بشكل صحيح بين الحالات التي يجب فيها استخدام العبارات switch
.
عندما تكون هناك حاجة إلى شروط متعددة، يمكن أن تجعل عبارات switch
النوايا أوضح۔
أمثلة لتجنبها
1// Bad Example
2if (status === 'success') {
3 console.log('Operation was successful.');
4} else if (status === 'error') {
5 console.error('There was an error.');
6} else if (status === 'pending') {
7 console.log('Operation is still pending.');
8} else {
9 console.log('Unknown status.');
10}
أمثلة محسنة
يمكن أن يساعد استخدام عبارات switch
في تنظيم الكود۔
1// Good Example
2switch (status) {
3 case 'success':
4 console.log('Operation was successful.');
5 break;
6 case 'error':
7 console.error('There was an error.');
8 break;
9 case 'pending':
10 console.log('Operation is still pending.');
11 break;
12 default:
13 console.log('Unknown status.');
14}
استخدام عبارات الحماية مع شروط الخروج المبكر
عبارة الحماية هي تقنية تستخدم عبارات if
للخروج من الدالة بسرعة۔
أمثلة لتجنبها
1// Bad Example
2function processOrder(order) {
3 if (order && order.isValid) {
4 if (order.items && order.items.length > 0) {
5 // Continue processing
6 }
7 }
8}
أمثلة محسنة
استخدم عبارات الحماية لتقليل التعشيش۔
1// Good Example
2function processOrder(order) {
3 if (!order?.isValid) return;
4 if (!order.items?.length) return;
5
6 // Continue processing
7}
اكتب تعليقات لتوضيح النوايا.
بالنسبة للشروط المعقدة أو الفروع الحرجة، أضف تعليقات موجزة وواضحة لتوضيح نية الكود۔
أمثلة لتجنبها
1// Bad Example
2if (stock > 10 && !isRestricted) {
3 console.log('Available for purchase.');
4}
أمثلة محسنة
أضف تعليقات لتوضيح النوايا۔
1// Good Example
2// The product must have at least 10 items in stock
3// and not be on the restricted list.
4if (stock > 10 && !isRestricted) {
5 console.log('Available for purchase.');
6}
الخاتمة
يمكن أن يؤدي الاستخدام الفعّال لعبارات if
في JavaScript إلى تحسين سهولة قراءة الكود وصيانته بشكل كبير۔
يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔