JavaScript 기본 문법 배우기
기본적인 규칙
- 하나의 명령 끝에는 ;(세미콜론)을 붙힌다.
- //, /* */ 로 주석처리
- 들여쓰기 규칙이 따로 정해져있지 않다.
- 문자열을 사용할 때 ' ', " ",₩ ₩
- \는 바로 다음 문자와 합쳐져 여러가지 일들을 한다. (\')
Chapter. 1 자료형
값 = 프로그램이 조작할 수 있는 데이터
값의 종류 = 자료형(data type)
- 문자열(typeof "string")
1-1. 문자, 빈 문자열 & 공백('')
1-2. 띄워쓰기를 인식하지 않으므로 문자열 안에 띄워쓰기를 넣어서 처리해야 한다.
- 숫자형(typeof "number")
2-1. 50000 = 5e4 / 0.0005 = 5e-4
2-2. 0b111 = 7 / 0111 = 73 / 0x1a1 = 417
등의 2진(0b), 8진(0o), 16진(0x) 계산이 가능
2-3. NaN = number ? = Not a Number
2-4. 2/0 = Infinity = typeof('number')
2-5. 0.1 + 0.2 = 0.300000000000004 ? - 부동소수점 문제
2-5-1. 부동소수점 문제를 해결하는 가장 쉬운 방법은 소수 -> 정수변환 -> 다시 소수변환
= 0.1 + 0.2 -> (0.1 x 10 + 0.2 x 10) / 10;
- 문자 vs 숫자
3-1. '124'(문자열) != 124(숫자)
3-2. parseInt('124) / Number('124') === 124
// 당신의 직관을 믿지 말 것. 꼭 확인해보는 습관을 기를 것.
3-3. parseInt = 정수변환 / parseFloat = 소수변환 / Number = 숫자로 변환
3-3-1. parseInt('3월') = 3 / Number('3월') = NaN
// 프로그래밍 언어는 '굳이' 같은 역활의 표현을 두 개 만들지 않는다. 차이를 명확하게 알 것.
3-4. '문자열' + '숫자열' = 문자열이 아닌 0이 문자열 0으로 변환 후 더한다.(형 변환)
ex) '1' + 0 - '10'
3-4-1. '문자열' - 0 = NaN // Number'문자열' - x = ?
// 자료형이 다른 요소를 더할때는 문자형으로 변환 / 다른 계산시에는 숫자형으로 변환
- 불 값(boolean)
4-1. typeof(true / false) = boolean ( 문자열이 아니다.)
4-2. 5 != 5 = true / NaN == NaN; = false
4-3. true > false = true
4-3-1. true - 1 / false - 0
4-4. 'b' > 'a' = true
4-4-1. charCodeAt() 로 code값을 알고 비교할 수 있다.
4-5. '3' < 5; = true / 'abc' < 5; = false
4-5-1. 문자열을 Number 변환 후 비교. 단 'abc'를 Number 변환시 NaN 값이 반환되므로 NaN 값과 숫자를 비교하면 항상 false 값이 반환된다.
4-6. '==' != '===' / '!=' !== '!=='
4-6-1. == 는 형 변환 후 비교 / === 는 자료형까지 같은지 비교(값 뿐만 아니라 자료형까지 같은지)
- 논리연산자(&&, ||, !)
5-1. && = and // || = or
5-2. Boolean('a'); == !!'a';
5-2-1. false, ''(공백), 0, NaN, undefined, null = false = Falsy value
- 비어있는 값(undefined, null)
6-1. typeof(undefined) = 'undefined'
6-2. null = '의도적으로' 빈 값을 넣음.
6-2-1. typeof(null) = 'object'
// 자바스크립트 초창기 설계오류. 지금은 굳어져버려 고칠 수 없다고 함.
6-3. undefined == null (true) ; undefined === null (false);