-
[자바스크립트 코딩의 기술] 1장Front-end/JavaScript 2020. 7. 2. 22:26
<자바스크립트 코딩의 기술>을 읽고 작성합니다.
1장 변수 할당으로 의도를 표현하라
const
로 변하지 않는 값을 표현하라const
는 블록의 문맥 내에서 재할당할 수 없는 변수 선언이지만 불변값이 되는 것은 아니다.
자바스크립트에서는 기본적으로const
를 이용해서 변수를 할당하는 것이 좋다. -> 디버깅이 쉬워지기 때문const
로 할당해도 값을 바꿀 수는 있다. 하지만 가능한 조작(mutation)을 피하는 것이 좋다.const discountable = []; for (let i=-; i< cart.length; i++) { if (cart[i].discountAvailable) { discountable.push(cart[i]); } } // No mutation const discountable = cart.filter(item => item.discountAvailable);
let
과const
로 유효 범위 충돌을 줄여라반드시 변수를 재할당해야 하는 경우에는
let
을 사용한다. 재할당을 할 수 있다는 점은var
와 동일하지만, 유효범위가 다르다.let
으로 선언한 변수의 중괄호를 벗어나면 변수가 존재하지 않는다.블록 유효 범위 변수로 정보를 격리하라
var
로 변수를 선언한 경우에는 함수 내부 어디서든 접근이 가능하다.호이스팅(hoisting)
컴파일 과정을 통해 변수가 선언되기도 전에 접근이 가능하다.템플릿 리터럴로 변수를 읽을 수 있는 문자열로 변환하라
템플릿 리터럴 이란, 자바스크립트 표현식을 사용하여 문자열을 연결하고 새로운 문자열을 생성하는 문법
문자열과 변수를 연결할 때 유용한 문법이다.- 따옴표(')나 쌍따옴표(") 대신에 백틱(`)을 사용한다.
- 변수에 할당한 문자열처럼 단순 문자열이 아닌 경우 특별한 지정자로 감싼다.
${...}
function greet(name) { return `Hi! ${name}`; } greet('Kim'); // 'Hi! Kim'
중괄호 내부에서 자바스크립트 동작을 수행하거나 여러 계산을 수행할 수 있지만, 가급적이면 중괄호 내부에서 많은 것을 하지 않는 것이 좋다.
코드가 필요 이상으로 어수선해질 수 있으므로 대규모 데이터 변환이 필요하다면 템플릿 리터럴 외부에서 처리한다.// before function generateLink(image, width) { const widthInt = parseInt(width, 10); return 'https://' + getProvider() + '/' + image + '?width=' + widthInt; } // after function generateLink(image, width) { const widthInt = parseInt(width, 10); return `https://${getProvider()}/${image}?width=${widthInt}`; }
'Front-end > JavaScript' 카테고리의 다른 글
[자바스크립트 코딩의 기술] 4장 (0) 2020.07.06 [자바스크립트 코딩의 기술] 3장 (0) 2020.07.06 [자바스크립트 코딩의 기술] 2장 (0) 2020.07.02 특정 날짜의 요일 구하기, 가격 컴마 표기 (0) 2020.05.15 [JavaScript] 배열/객체에 찾는 값이 있는지 확인하기 (0) 2020.03.18