var
- 변수 선언시 생략 가능
- 같은 변수명으로 재선언 가능
- 초기화 생략 가능 : undefined 상태
- 저장된 값의 수정 가능
- 호이스팅(항상 먼저 처리되는 코드) 대상임
a = 10; // 변수 선언 키워드(var) 생략 가능
console.log(a);
a = null; // 강제로 저장된 값을 없앰
console.log(a);
var b; // 초기화가 없으면 undefined 상태
console.log(b);
console.log(c);
var c; // 호이스팅(항상 먼저 처리되는 코드)
var d = 10; // 10을 저장하면서 number 타입을 가짐
console.log(d, typeof d);
var d = 'hello'; // 같은 이름의 변수를 재선언할 수 있음
console.log(d, typeof d);
var d = Math.sqrt(-25); // 루트 -25를 의미함(실제로 존재하는 숫자가 아님 : NaN)
console.log(d, typeof d);
var d = 10 / -0; // Infinity, -Infinity
console.log(d, typeof d);
기본 자료형
1) number (1) 정수, 실수 구분이 없음 (2) 숫자, NaN(Not a Number), +Infinit, -Infinit(+0/-0으로 나누기를 해 보면 확인 가능) 2) string (1) 문자, 문자열 구분 없이 모두 string (2) 작은 타옴표(''), 큰 따옴표("")을 모두 사용할 수 있음 3) boolean (1) true, false 4) null (1) 의도적으로 값을 비운 상태 (2) null 5) undefined (1) 값이 저장된 적이 없는 상태(초기화를 안한 변수) (2) undefined
자료형 변환
1. 문자열 -> 정수 1) Number('100') : 100 2) parseInt('100') : 100 2. 문자열 -> 실수 1) Number('1.5') : 1.5 2) parseFloat('1.5') : 1.5 3. 정수/실수 -> 문자열 1) String(100) : '100' 2) String(1.5) : '1.5'
var a = '100';
var b = Number(a);
console.log(b, typeof b); // 100
var b = parseInt(a);
console.log(b, typeof b); // 100
// 실수를 parseInt 처리하면?
var a = '1.5';
var b = parseInt(a);
console.log(b, typeof b); // 1로 처리됨
var c = '1.5';
var d = Number(c);
console.log(d, typeof d); // 1.5
var d = parseFloat(c);
console.log(d, typeof d); // 1.5
var e = '100';
console.log(String(e)); // 100
var e = '1.5';
console.log(String(e)); // 1.5
연산자
- 관계 연산자
(1) == : 값만 비교('1'과 1을 같은 값으로 인식)
(2) === : 값과 타입을 모두 비교('1'과 1을 다른 값으로 인식)- 조건 연산자
(1) (조건식) ? true인 경우 : false인 경우- 문자열 연산자
(1) + : 문자열 연결 (문자열이 하나라도 포함되면 연결)
(2) + 이외의 산술 연산자(-,*,/ 등)는 문자열이 포함되더라도 산술 연산을 수행
var a = '1';
var b = 1;
console.log(a == b, a === b); // true false
console.log(1 + '1'); // '11'
console.log('1' + '1'); // '11'
console.log('5' - 2); // 3
console.log('5' - '2'); // 3
연산자 연습문제
최저시급 9160원
8시간 근무 : 시급
8시간 초과 근무 : 시급 * 1.5
10시간 근무하면 일급 얼마?
var payPerHour = 9160; // const payPerHour = 9160;
var workTime = 10;
var regular = payPerHour * workTime; // 기본급여
var extra = (workTime <= 8) ? 0 : (workTime - 8) * payPerHour * 0.5; // 초과급여
console.log(regular + extra);