Javascript Fundamental – Pengetahuan Dasar Javascript yang Sering Terlewatkan

Pengetahuan Dasar Javascript

Javascript Logo

 

Kali ini saya akan membahas beberapa pengetahuan dasar Javascript yang mungkin terlewatkan.

A. Variable Scope

Contoh kode dapat dilihat di JsFiddle: https://jsfiddle.net/pionize/vm17v1oh/

Local Scope Variable

  • Local scope variable hanya dapat diakses di dalam suatu scope saja.
  • Variable yang dideklarasikan di dalam fungsi akan menjadi variable local di fungsi tersebut. Variable tersebut menjadi hanya bisa diakses di dalam fungsi tersebut, di luar scope tidak akan bisa diakses.
  • Jika variable dideklarasikan di dalam sebuah fungsi, maka variable dengan nama yang sama dapat digunakan di luar fungsi tersebut.
  • Local variable dibuat ketika fungsi dimulai dan dihapus ketika fungsi selesai dijalankan.
// code here can't use carName
function myFunction() {
    var carName = 'Volvo';
    // code here can use carName
}

Global Scope Variable

  • Variable yang dideklarasikan di luar fungsi akan menjadi variable global.
  • Global variable dapat diakses oleh semua fungsi.
  • Penggunaan variable global sebisa mungkin dihindari.
var carName = ' Volvo';

// code here can use carName
function myFunction() {
    // code here can use carName 
}
  • Jika sebuah variable diberi nilai tanpa deklarasi terlebih dahulu, variable tersebut secara otomatis akan menjadi global.
myFunction();
// code here can use carName 
function myFunction() {
	carName = 'Volvo';
}

 

B. Semicolon (titik koma)

Semicolon atau titik koma (;) memang tidak wajib di Javascript, tapi akan lebih baik jika kita secara konsisten menggunakannya sebagai penanda akhir dari sebuah statement/kode.

 

Javascript Minify

Tanpa titik koma, maka sebuah kode Javascript akan berpotensi terjadi kesalahan ketika di minify. Contoh

 

//before minification
a = b + c
(d + e).print()

//after minification
a = b + c(d + e).print();
//before minification
var isTrue = true

function doSomething() { return 'yeah' }

function doSomethingElse() { return 'yes, dear' }

doSomething()

!isTrue && doSomethingElse()

//after minification
var isTrue=true;function doSomething(){return "yeah"}function doSomethingElse(){return "yes, dear"}doSomething()!isTrue&&doSomethingElse();

Beberapa aturan penggunaan tanda titik koma pada Javascript:

  • Jangan gunakan setelah tanda tutup kurung kurawal, kecuali untuk mengakhiri inisialisasi variabel var obj = {};
// NO semicolons after }:
if  (...) {...} else {...}
for (...) {...}
while (...) {...}

// BUT:
do {...} while (...);

// function statement: 
function (arg) { /*do this*/ } // NO semicolon after }
  • Jangan gunakan setelah tanda kurung untuk statement if, for, while, atau switch.

if (0 === 1); { alert("hi") }

// equivalent to:

if (0 === 1) /*do nothing*/ ;
alert ("hi");
  • Wajib digunakan ketika ada lebih dari 1 statement di baris yang sama
var i = 0; i++        //  semicolon obligatory
                      //  (but optional before newline)
var i = 0             //  semicolon optional
    i++               //  semicolon optional

C. Object Pointer

Javascript memang tidak mengenal variable pointer, dan kita tidak dapat menginisialisasi variable sebagai pointer, tapi kita dapat memanfaatkan tipe data object sebagai pointer. Pada dasarnya, tipe data object di Javascript akan diperlakukan mirip seperti pointer, karena yang akan dicatat adalah alamat memorinya.

Contoh manipulasi tipe data object yang mirip seperti pointer

 

var foo = {'bar': 1};

function tryToMungeReference(obj) {
    obj = {'bar': 2};  // won't change caller's object
}

function mungeContents(obj) {
    obj.bar = 2;       // changes _contents_ of caller's object
}

tryToMungeReference(foo);
foo.bar === 1;   // true - foo still references original object

mungeContents(foo);
foo.bar === 2;  // true - object referenced by foo has been modified

Contoh lain:

var x = {Value: 0};

function a(obj)
{
    obj.Value++;
}

a(x);
document.write(x.Value); //current value will be 1 instead of 0

Tinggalkan Balasan