오늘은 무려 3시간 가까이의 강의를 끝냈는데, 중간중간 집중이 끊겨버려서... ㅇㅅㅇ....
오늘은 강의 들으면서 새롭게 알게된 내용을 정리해보려고 한다.
var, let, const
위의 세 방법으로 변수 혹은 상수를 지정할 수 있다는 것은 코딩하면서 알고 있던 사실이지만 사실 큰 차이는 잘 알 지 못했다. 간단히 요약하자면
var | let | const | |
|---|---|---|---|
| 재선언 | o | x | x |
| 할당 | o | o | o |
var : 재선언과 할당이 자유로우며 중복해서 선언 가능, 대신 가장 최근에 선언/할당된 값이 우선시 됨
let : 할당이 자유롭지만 재선언은 안됨; 한 번 선언한 값을 대신 여러번 할당하여 많은 변수 선언 없이 사용 가능
const : 한번 선언하고 값을 지정한 순간 프로그램 내에서는 값을 바꿀 수 없다. (재선언/할당 둘 다 안됨)
// 변수 선언
var a = 1;
let b = 3;
const c = 4;
// 변수 재선언
var a = 2;
// let과 const는 재선언 안됨
// let b = 5; >> error
// const c = 7; >> error
// 변수 할당
a = 5;
b =10;
// const는 재할당 안됨
// c = 20; >> error
형변환
코딩을 하다보면 자동으로 형변환이 되는 경우는 많이 봐왔지만 자세한 메커니즘은 몰랐는데, 연산기호마다 바뀐다는 사실이 흥미로웠다.
// + 연산자 형변환 (문자열 우선)
let result1 = 1 + "2"; // 문자열 "12"
let result2 = "1" + true; // 문자열 "1true"
// - 혹은 * 연산자 (숫자 우선)
let result3 = 1 - "2"; // 숫자 -1
let result4 = "2" * "3"; // 숫자 6
명시적 형변환은 String(), Number(), Boolean() 이런식으로 변환하고 싶은 타입의 변환함수를 활용하면 된다.
화살표 함수
Python에서 JavaScript로 넘어왔을 때 가장 힘들었던 부분이 화살표 함수였다. Python도 비슷한 기능은 있는데 함수를 통째로 줄일 수 있는 건 처음 본 느낌이랄까.
Python은 그나마 비슷한 느낌의 메커니즘이라면 배열 혹은 딕셔너리 타입의 traversing을 간소화한 list-comprehension이 있다.
newlist = [x for x in range(10)]
# 이렇게 하면 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 배열이 만들어진다
JS그게 아니라, 짧은 함수면 그걸 한줄로 지정할 수 있다는 점이 흥미로웠다. 화살표 함수가 그 역할을 해 줄 수 있다고...
// 기본함수 ES6 문법
function add(a, b) {
return a + b;
}
// 화살표함수
// 1-1. 기본적인 화살표 함수
let arrowFunc01 = (a, b) => {
return a + b;
}
// 1-2. 한 줄로 (함수 안의 코드가 한 줄일때만)
let arrowFunc02 = (a, b) => a + b;
익숙해지는데 조금 걸릴 것 같은 느낌이 든다ㅠㅠ
JavaScript 문법 1주차 강의는 개인적으로 복습하는 느낌에 가까웠기에 처음 안 사실들만 잊지 않도록 정리해봤다. 내일은 휴일이다ㅏㅏ