Berkenalan Lagi Dengan Javascript: Control Structures

Conditional (If & Else)

if dan else digunakan untuk memastikan baris kode hanya akan dieksekusi jika memenuhi kondisi yang diberikan. if dan else pada Javascript dapat dibuat berantai, seperti pada contoh berikut:

var name = 'kittens';

if (name == 'puppies') {
  name += ' woof';
} else if (name == 'kittens') {
  name += ' meow';
} else {
  name += '!';
}

name == 'kittens meow';

Javascript juga memiliki ternary operator untuk evaluasi kondisi:

var allowed = (age > 18) ? 'yes' : 'no';

Conditional (switch)

Statement switch dapat digunakan untuk evaluasi kondisi dengan beberapa cabang.

switch (action) {
  case 'draw':
    drawIt();
    break;
  case 'eat':
    eatIt();
    break;
  default:
    doNothing();
}

Tanpa statement break eksekusi akan “fall trough” ke baris berikutnya.

switch (a) {
  case 1: // fallthrough
  case 2:
    eatIt(); // dieksekusi jika a bernilai 1 atau 2
    break;
  default:
    doNothing();
}

Klausa default bersifat opsional, tidak wajib ada dalam penggunaan switch. Pada bagian switch atau case dapat pula menggunakan expressions. Perbandingan antara switch dan case menggunakan perbandingan ===.

switch (1 + 3) {
  case 2 + 2:
    yay();
    break;
  default:
    neverhappens();
}

Perulangan

while & do while

Perulangan menggunakan while dilakukan selama kondisi yang diberikan bernilai true atau sampai pada statement break. Sedikit berbeda dengan while, do while memastikan statement di dalamnya dijalankan paling sedikit satu kali.

while (true) {
  // perulangan tak hingga
}

while (false) {
  // tidak ada yang dieksekusi
}

do {
  input = get_input(); // Statement ini tetap akan dijalankan
} while (false);

for

Javascript juga memiliki perulangan for seperti contoh berikut:

for (var i = 0; i < 5; i++) {
  // Will execute 5 times
}

for (var i = 0; i < 6; i = i+2) {
    console.log(i); // 0 2 4
}

Javascript juga memiliki bentuk lain untuk perulangan for, yaitu for ... of untuk melakukan perulangan pada Array dan for ... in untuk melakukan perulangan pada Object

for (let value of array) {
  // do something with value
}

for (let property in object) {
  // do something with object property
}

Short Circuit Logic

Short Circuit Logic menggunakan && atau || dimana eksekusi operasi ke dua berrgantung pada operasi pertama. Metode ini berguna untuk memeriksa Null Object sebelum mengakses attributenya.

var test = true;

var isTrue = function(){
  console.log('Test is true.');
};

var isFalse = function(){
  console.log('Test is false.');
};

// A normal if statement.
if (test) {
  isTrue();    // Test is true
}

// Above can be done using '&&' as -

( test && isTrue() );  // Test is true

Logic && dapat digunakan untuk menghindari exceptions ketika menggunakan property yang tidak terdefinisi, contoh:

var dog = {
  bark: function(){
    console.log('Woof Woof');
  }
};

// Calling dog.bark();
dog.bark(); // Woof Woof.

// Jika dog undefined atau belum didefinisikan, dog.bark() akan
// menghasilkan error "Cannot read property 'bark' of undefined."
// untuk menghindarinya, gunakan &&.

dog&&dog.bark(); // dog.bark() hanya akan dipanggil jika dog terdefinisi.

untuk logical OR / ||:

test = false;

if (!test) {
  isFalse();    // Test is false.
}

( test || isFalse());  // Test is false.

Logic || dapat digunakan untuk menetapkan nilai default untuk argumen pada fungsi, contoh:

function theSameOldFoo(name){
  name = name || 'Bar' ;
  console.log("My best friend's name is " + name);
}
theSameOldFoo();  // My best friend's name is Bar
theSameOldFoo('Bhaskar');  // My best friend's name is Bhaskar

Catatan Lainnya:

  1. Berkenalan Lagi Dengan Javascript: Types
  2. Berkenalan Lagi Dengan Javascript: Variable & Operator
  3. Berkenalan Lagi Dengan Javascript: Control Structures
  4. Berkenalan Lagi Dengan Javascript: Object & Array