유데미 강의 JavaScript 완벽 가이드 : 초급 + 고급 마스터 과정을 들으면서 자바스크립트를 다시 한 번 익히는 중이다. 이 포스팅에선 강의를 듣고 미처 몰랐던 부분, 심화 이해가 필요한 부분에 대해 주제별로 간단하게 기록할 생각이다.
https://velog.io/@raquim47/scriptTagsLoadingStrategies
코드 블록으로 묶이는 if문, for문, 함수 등은 세미콜론을 붙이지 않는다. 코드 블록 자체가 자체 종결성을 갖기 때문.
// 순수 함수
function add(x, y) {
return x + y;
}
// 순수함수가 아닌 예
let z = 1;
function addAndMultiply(x, y) {
z = z * 2;
return x + y + z;
}
// test++; 와 ++test의 차이?
let test1 = 3;
let result1 = test++;
console.log(result1); // 3
console.log(test1); // 4
// test++는 현재 값을 반환 하고 1증가
let test2 = 3;
let result2 = ++test;
console.log(result2); // 4
console.log(test2); // 4
// ++test는 1증가하고 반환
특정 범위 내에서 이미 선언된 변수와 같은 이름의 변수를 다시 선언하는 것을 말한다. 이렇게 되면, 새로 선언된 변수가 기존의 변수를 '섀도우'하게 되며, 해당 범위에서는 새로 선언된 변수가 사용. 자바스크립트에서는 함수 또는 블록 범위 내에서 변수를 섀도잉할 수 있다. 특정 스코프 내에서 이전에 선언된 변수를 '가린다'고 이해하면 편하다. 섀도잉이 발생하면, 같은 이름을 가진 변수는 그보다 상위 스코프의 변수를 가리게 된다.
강의 : https://www.udemy.com/course/javascript-zw/learn/lecture/30289504?start=15#questions