변수 선언
const: 재할당 불가. 기본값으로 쓰세요.let: 재할당 가능. 루프 카운터·누적에 사용.var: 함수 스코프·호이스팅이 헷갈립니다. 이 사이트 문제에서는 쓰지 않는 편이 낫습니다.
const name = 'Praxis';
let sum = 0;
sum += 3;
자주 만나는 타입
| 타입 | 예 | 비고 |
|---|---|---|
| number | 3, 3.14, NaN | 정수/실수 구분 없음 |
| string | 'hi', "hi", ` hi ` | 불변 |
| boolean | true / false | |
| undefined | 값이 아직 없음 | |
| null | 의도적 빈 값 | |
| object / array | {} / [] | 참조 타입 |
문자열 ↔ 숫자
Number('42'); // 42
parseInt('42px', 10); // 42
+'42'; // 42
String(42); // '42'
(42).toString(); // '42'
Number('')는 0, Number(' ')도 0에 가깝게 동작하니 빈 입력은 먼저 trim하세요. Number('abc')는 NaN입니다. Number.isNaN(x)로 검사합니다.
== 와 ===
==는 타입을 바꿔 가며 비교합니다. "5" == 5 → true.
문제 풀이에서는 === / !==만 쓰는 습관을 들이세요.
템플릿 리터럴
const a = 3, b = 5;
return `${a}+${b}=${a + b}`;
여러 줄 출력도 백틱으로 자연스럽게 만들 수 있습니다.
함정: 부동소수
0.1 + 0.2 === 0.3은 false입니다.
소수 비교가 필요하면 오차 허용 또는 정수(센트)로 바꿉니다. 코딩 테스트에서는 보통 정수·문자열 위주입니다.
연습
연습장에서:
"12 34"를 숫자 두 개로 파싱해 합 반환- 빈 문자열·공백만 있는 입력도
trim후 처리
연습 과제 (연습장)
- 입력
"7 8"→"15" - 입력
" 7\t8\n"도 같은 결과 (trim) "x 1"처럼 숫자가 아니면"NaN"또는"err"정책을 스스로 정하고 구현
암묵적 변환 표
| 식 | 결과 감각 |
|---|---|
1 + "2" | "12" |
1 - "2" | -1 |
true + 1 | 2 |
null + 1 | 1 |
undefined + 1 | NaN |
알고리즘에서는 변환에 기대지 말고 명시적으로 Number / String을 쓰세요.