Javascript Hoisting
- Categories:
- javascript
Function declaration dan variable declaration otomatis berpindah (“hoisted”) secara tak kasat mata ke posisi paling atas di dalam scope yang melakukan deklarasi oleh intepreter Javascript.
Variabel
Secara default jika variabel belum dideklarasikan, akan ada ReferenceError
.
Saat variabel telah di-deklarasikan.
Kode diatas diintepretasikan oleh Javascript menjadi seperti dibawah ini.
Berbeda dengan deklarasi variabel dengan var
, let
dan const
memiliki konsep Temporal Dead Zone (TDZ).
Dengan menggunakan let
, deklarasi ulang akan menyebabkan TypeError
.
Sedangkan melakukan referensi terhadap variabel didalam suatu blok sebelum variabel di-deklarasi akan menyebabkan ReferenceError
. Hal ini dikarenakan variabel berada dalam “temporal dead zone” hingga deklarasi variabel diproses.
Function
Perlu diketahui, Javascript ada istilah function expression dan function declaration.
Anonymous function expression melakukan “hoist” terhadap nama variabel saja, tidak dengan isinya.
Named function expression melakukan “hoist” terhadap nama variabel saja, tidak dengan nama function ataupun body dari function.
Function declaration melakukan “hoist” baik nama ataupun body dari function.
Lebih lanjut mengenai hosting dapat dilihat tulisan Javascript Scoping & Hoisting.
Referensi
- Tags:
- #javascript
Recent Posts
How to Defend Against Brute-Force and DoS Attacks with Fail2ban, Nginx limit_req, and iptables
In this tutorial, I’ll explain how to protect your public-facing Linux server and Nginx web server from common threats, including brute-force and DoS attacks.
Is Getting AWS Solutions Architect Associate Certification Worth It?
If you are a full-time Software Engineer, there's no strong need to pursue this certification.
DevSecOps
My Notes about DevSecOps
AWS Secrets Manager
Explanation about AWS Secrets Manager with example code.
Envelope Encryption
Envelope encryption is the practice of encrypting plaintext data with a data key, and then encrypting the data key under another key.