let, const
--> 설명 : https://velog.io/@odesay97/JavaScript-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95-%EB%B3%B5%EC%8A%B5-1
--> 함수 안에 있는 선언들을 모두 끌어 올려서 해당 함수 유효 범위의 최상단에 선언하는 것(자동으로)
--> 즉, 변수 사용 이후에 변수 선언을 하더라도 코드상에 문제가 없는 것이다.
(변수 선언들이 모두 최상단에 끌어올려져 선언되기 떄문에)
--> 따라서 선언시에 var 을 사용할 경우 오류의 여지가 매우 많아지므로 let과 const의 사용을 매우 권장함
--> 즉, 변수가 아래쪽에 선언되어 있더라도, 위쪽에서 그 변수를 인식하고 사용할 수 있다는 것이다.
const students = ["John", "Jane", "Alex"]
for (let i = 0; i<students.length;i++){
console.log(students[i])
}
//출력
// John
// Jane
// Alex
const students = ["John", "Jane", "Alex"]
for (const student of students) {
console.log(student);
}
// John
// Jane
// Alex
--> 리스트의 요소 하나하나를 가져오면서 반복
const students = ["John", "Jane", "Alex"]
for (const index in students) {
console.log(index, students[index]);
}
// 0 John
// 1 Jane
// 2 Alex
--> 리스트의 길이만큼 반복 (기존의 반복문의 i처럼 숫자를 순차적으로 가져옴)
const students = ["John", "Jane", "Alex"]
students.forEach(v => {
console.log(v);
});
// John
// Jane
// Alex
--> for of 문과 동일
--> 화살표 함수
function hello() {
console.log("Hello function");
}
// 첫번째 arrow function
const arrowFunction = () => {
console.log("Hello arrow function");
}
// 두번째 arrow function
const arrowFunctionWithoutReturn = () => console.log("Hello arrow function without return");
hello(); // Hello function
arrowFunction(); // Hello arrow function
arrowFunctionWithoutReturn(); // Hello arrow function without return
기존의 함수 선언
function hello() { ..... }
arrowFunction으로 함수 선언
hello = () => { ..... }