November 21, 2019
Scope는 중첩이 가능
let greeting = 'Hello';
function greetSomeone() {
let firstName = 'Josh';
return greeting + ' ' + firstName;
}
greetSomeone(); // "Hello Josh"
firstName // Uncaught ReferenceError: firstName is not defined
예시 01
let name = 'Heaeun';
function showName() {
let name = 'Daeun'; // 지역변수
/*
* 1. let 키워드를 이용해 새로 선언하였으므로,
전역에 선언한 name과는 다른 변수이다
* 2. showName 함수 안에서만 접근 가능
*/
console.log(name);
}
console.log(name); // Heaeun
showName(); // Daeun
console.log(name); // Heaeun
예시 02
let name = 'Heaeun';
function showName() {
name = 'Daeun'; // 전역변수
/*
* 1. 선언(let)이 없기 때문에,
바깥 scope에 있는 name이라는 변수를 가져온다
*/
console.log(name);
}
console.log(name); // Heaeun
showName(); // Daeun
console.log(name); // Daeun
Block : 중괄호로 시작하고 끝나는 범위
if(true) {
console.log('i an in the block');
}
for (let i = 0; i < 10; i++) {
console.log(i);
}
{
console.log('it works');
}
변수를 정의하는 또다른 키워드 var
값이 변하지 않는 변수, 즉 상수를 정의할 때 사용하는 키워드