문서의 이전 판입니다!
ES2015는 let
과 const
라는 두 가지 중요한 새 JavaScript 키워드를 도입했습니다.
이 두 키워드는 JavaScript에서 블록 범위 변수(Block Scope)와 상수(constant)를 제공합니다.
ES2015 이전에는, JavaScript에는 전역 범위(Global Scope)와 함수 범위(Function Scope)라는 두 가지 유형의 범위만 있었습니다.
모든 함수 외부에서 전역으로(Globally) 선언된 변수들은 전역 범위(Global Scope)를 가지고 있습니다.
<!DOCTYPE html> <html> <body> <h2>JavaScript Scope</h2> <p>A Global variable can be accessed from any script or function.</p> <p id="demo"></p> <!-- I can display All New Rexton --> <script> var carName = "All New Rexton"; myFunction(); function myFunction() { document.getElementById("demo").innerHTML = "I can display " + carName; } </script> </body> </html>
전역 변수(Global variables)는 JavaScript 프로그램의 어느 곳에서나 액세스 할 수 있습니다.
함수 내에서 로컬로(Locally) 선언된 변수는 함수 범위(Function Scope)를 가집니다.
<!DOCTYPE html> <html> <body> <h2>JavaScript Scope</h2> <p>Outside myFunction() carName is undefined.</p> <p id="demo1"></p> // string Volvo <p id="demo2"></p> // undefined <script> myFunction(); function myFunction() { var carName = "Volvo"; document.getElementById("demo1").innerHTML = typeof carName + " " + carName; } document.getElementById("demo2").innerHTML = typeof carName; </script> </body> </html>
지역 변수(Local variables)는 선언된 함수 내에서만 액세스 할 수 있습니다.
var
키워드로 선언된 변수는 블록 범위(Block Scope)를 가질 수 없습니다.
블록 {} 내부에서 선언된 변수는 블록 외부에서 액세스 할 수 있습니다.