Praktik Terbaik untuk Pernyataan Kondisional di JavaScript

Praktik Terbaik untuk Pernyataan Kondisional di JavaScript

Artikel ini menjelaskan praktik terbaik untuk pernyataan kondisional di JavaScript.

YouTube Video

Praktik Terbaik untuk Pernyataan Kondisional di JavaScript

Pernyataan if adalah struktur kontrol dasar dalam program JavaScript. Namun, seiring meningkatnya kompleksitas kode, jumlah pernyataan if dapat bertambah, membuat kode menjadi lebih sulit dibaca. Kali ini, kita akan membahas lebih dalam mengenai praktik terbaik untuk merancang pernyataan if dengan benar di JavaScript demi meningkatkan keterbacaan dan kemudahan pemeliharaan.

Sederhanakan kode menggunakan flag.

Sederhanakan kondisi yang melibatkan kriteria ganda dengan menggunakan nilai boolean.

Contoh yang Harus Dihindari

1// Bad Example
2if (isUserLoggedIn && user.hasPaymentInfo && user.cartItems.length > 0) {
3    console.log('Proceed to checkout');
4}

Contoh yang Ditingkatkan

Gunakan flag untuk memperjelas kondisi.

1// Good Example
2const canProceedToCheckout = isUserLoggedIn && user.hasPaymentInfo && user.cartItems.length > 0;
3
4if (canProceedToCheckout) {
5    console.log('Proceed to checkout');
6}

Jaga Pernyataan Kondisional Tetap Sederhana

Ketika ekspresi bersyarat menjadi kompleks, keterbacaan kode berkurang, sehingga perlu menjaga kondisi tetap sederhana.

Contoh yang Harus Dihindari

1// Bad example
2if (user && user.isLoggedIn &&
3    user.permissions && user.permissions.includes('admin')) {
4    console.log('Welcome, admin!');
5}

Contoh yang Ditingkatkan

Dengan memecah kondisi ke dalam variabel dengan makna tertentu, Anda dapat memperjelas maksudnya.

1// Good Example
2const isUserLoggedIn = user?.isLoggedIn;
3const hasAdminPermission = user?.permissions?.includes('admin');
4
5if (isUserLoggedIn && hasAdminPermission) {
6    console.log('Welcome, admin!');
7}

Perjelas prioritas operator logika

Dalam pernyataan if JavaScript, salah paham tentang prioritas operator logika dapat menyebabkan perilaku yang tidak diinginkan.

Contoh yang Harus Dihindari

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}

Contoh yang Ditingkatkan

Ketika prioritas operator tidak jelas, Anda dapat menggunakan tanda kurung secara tepat untuk memperjelas.

1// Good Example
2if (isAdmin && (isActive || isPremium)) {
3    console.log("Access granted");
4} else {
5    console.log("Access denied");
6}

Menggunakan evaluasi pendek

JavaScript mendukung evaluasi pendek untuk operator && (DAN) dan || (ATAU). Evaluasi pendek berarti ketika hasil dari suatu kondisi sudah ditentukan selama evaluasi, bagian yang tersisa tidak dievaluasi lagi.

  • DAN (&&): Jika sisi kiri dievaluasi sebagai false, sisi kanan tidak dievaluasi dan nilainya dikembalikan.
  • ATAU (||): Jika sisi kiri dievaluasi sebagai true, sisi kanan tidak dievaluasi dan nilainya dikembalikan.

Contoh yang Harus Dihindari

1// Bad Example
2if (user?.someComplexFunction() && user?.isLoggedIn) {
3    // ...
4}

Contoh yang Ditingkatkan

Dalam kode ini, fungsi user?.someComplexFunction() dipanggil meskipun user?.isLoggedIn adalah false.

Memahami evaluasi pendek dapat membantu Anda menghindari perhitungan yang tidak perlu dan menulis kode yang efisien.

1// Good Example
2if (user?.isLoggedIn && user?.someComplexFunction()) {
3    // ...
4}

Meminimalkan Penggunaan Pernyataan else

Pernyataan else dapat meningkatkan beban kognitif saat melacak kode. Sebagai gantinya, pertimbangkan untuk menggunakan pengembalian awal.

Contoh yang Harus Dihindari

1// Bad Example
2function getUserRole(user) {
3    if (!user) {
4        return 'Guest';
5    } else {
6        return user.role;
7    }
8}

Contoh yang Ditingkatkan

Perjelas kondisi dengan pengembalian awal.

1// Good Example
2function getUserRole(user) {
3    if (!user) return 'Guest';
4    return user.role;
5}

Penggunaan yang Tepat dari Operator Ternary

Untuk kondisi sederhana, menggunakan operator ternary dapat memperpendek kode Anda. Namun, hindari penggunaan bersarang atau logika yang kompleks.

Contoh yang Harus Dihindari

1// Bad Example
2let message = user.isLoggedIn ? user.isAdmin ?
3                    'Welcome, admin!'
4                    : 'Welcome, user!'
5                    : 'Please log in.';

Contoh yang Ditingkatkan

Utamakan keterbacaan dengan membagi kondisi.

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}

Menggunakan nilai default dan evaluasi pendek

Gunakan nilai default dan evaluasi short-circuit untuk mengurangi percabangan dan menyederhanakan kode.

Contoh yang Harus Dihindari

1// Bad Example
2let displayName;
3if (user && user.name) {
4    displayName = user.name;
5} else {
6    displayName = 'Guest';
7}

Contoh yang Ditingkatkan

Dalam kasus ini, menggunakan operator logika membuatnya lebih ringkas.

1// Good Example
2displayName = user?.name || 'Guest';

Bedakan dengan benar kapan harus menggunakan pernyataan switch.

Ketika beberapa kondisi diperlukan, pernyataan switch dapat membuat maksud lebih jelas.

Contoh yang Harus Dihindari

 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}

Contoh yang Ditingkatkan

Penggunaan pernyataan switch dapat membantu mengatur kode.

 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}

Menggunakan klausa penjaga dengan kondisi keluar awal

Guard clause adalah teknik yang menggunakan pernyataan if untuk keluar dari fungsi lebih awal.

Contoh yang Harus Dihindari

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}

Contoh yang Ditingkatkan

Gunakan guard clause untuk mengurangi lapisan bersarang.

1// Good Example
2function processOrder(order) {
3    if (!order?.isValid) return;
4    if (!order.items?.length) return;
5
6    // Continue processing
7}

Tuliskan komentar untuk memperjelas maksud.

Untuk kondisi kompleks atau cabang yang kritis, tambahkan komentar singkat dan jelas untuk menyampaikan maksud kode.

Contoh yang Harus Dihindari

1// Bad Example
2if (stock > 10 && !isRestricted) {
3    console.log('Available for purchase.');
4}

Contoh yang Ditingkatkan

Tambahkan komentar untuk memperjelas maksud.

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}

Kesimpulan

Penggunaan pernyataan if JavaScript secara efektif dapat sangat meningkatkan keterbacaan dan pemeliharaan kode.

Anda dapat mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Silakan periksa juga saluran YouTube kami.

YouTube Video