
변수 : 이름이 붙은 값, 언제든 바뀔 수 있음
상수 : 한 번 할당한 값을 바꿀 수 없음
될 수 있으면 변수보다 상수를 쓰는 것이 좋음
: 상수를 사용하면 바꾸지 말아야 할 데이터에서 실수로 값을 바꾸는 일이 줄어듬
식별자 : 변수, 상수, 함수 이름을 식별자라 부름
표기법 : 카멜 케이스, 스네이크 케이스
식별자는 반드시 글자, $, _로 시작
식별자는 대문자로 시작하면 안됨 (예외 : 클래스)
제이쿼리를 사용할 경우 $로 시작하는 식별자는 보통 제이쿼리 객체라는 의미
리터럴 : 값을 프로그램 안에서 직접 지정한다는 의미. 값을 만드는 방법
JS는 따옴표를 통해 리터럴과 식별자를 구분
원시타입은 불변 : 숫자, 문자열, boolean, null, undefined, 심볼
객체는 여러 가지 형태와 값을 가질 수 있음 : Array, Date, RegExp, Map과 WeakMap, Set과 WeakSet, Number, String, Boolean
더블 : 실제 숫자의 근사치 저장할 때 부동소수점 숫자 형식 사용
자바스크립트에는 숫자형 데이터 타입이 하나
자바스크립트 문자열은 유니코드 텍스트
문자열 안에서 텍스트 데이터와 프로그램을 구분하는 방법 텍스트 데이터 앞에 \ 붙이기
\n : 줄바꿈
\t : tap
\v : 세로 tap
\b : 백스페이스
문자열 템플릿 (문자열 채우기) : 문자열의 정해진 위치에 값을 채워넣는 간편한 방법. `사용
0 이외 다른 숫자는 true
심볼 : 유일한 토큰을 나타내기 위해 도입한 새 데이터 타입
const RED = Symbol("The color of a sunset!");
const ORANGE = Symbol("The color of a sunset!");
RED === ORANGE //false : 심볼은 모두 서로 다름
null : 프로그래머에게 허용된 데이터 타입
undefined : 자바스크립트 자체에서 사용
객체의 본질 : 컨테이너 - 내용물이 바뀔 수는 있지만, 내용물이 바뀐다고 컨테이너가 바뀌는 것은 아님
객체의 콘텐츠 : 프로퍼티, 멤버 - 이름(키)과 값으로 구성
객체에 함수를 담을 수 있음
sam3.speak = function(){return "Meow!";};
sam3.speak(); //"Meow!"
객체에서 프로퍼티를 제거할 때는 delete 연산자 사용
const s = "hello";
s.toUpperCase(); //"HELLO"
s가 원시 문자열 타입이지만 toUpperCase함수가 들어있는 임시 String 객체를 만듬.
자바스크립트는 함수를 호출하는 즉시 임시객체를 파괴
일반 객체와 달리 배열 콘텐츠에는 항상 순서가 있고, 키는 순차적인 숫자
배열 요소에 값을 할당할 때 배열 길이나 그보다 큰 인덱스를 사용하면 배열 크기가 그에 맞게 늘어남
내장된 Date 객체에서 담당
특정 날짜, 시간에 해당하는 객체 만들 때 : const halloween = new Date(2016, 9, 31, 19, 0);
RegExp 객체 사용
셋은 배열과 비슷하지만 중복 비허용
const a = parseInt("16 volts", 10);
// "volts" 무시. 10진수 16
const b = parseInt("3a", 16);
//16진수 3a를 10진수로 바꿈. 결과는 58
const c = parseFloat("15.5 kph");
// "kph"무시. parseFloat는 항상 기수 10
toString() 메서드 - 배열에서 쓰면 각 요소를 문자열로 바꾼 후 쉼표로 연결한 문자열 반환
💡QUIZ
- 리터럴 : 런타임에서 값을 할당, 코드 상에 값을 나타내고 싶을 때
- 자바스크립트가 허술한 언어이기 때문에, 우리가 엄격하게 알아야 하는 것.. 무영이의 띵언....
- typeof 배열은 object
- 자바스크립트의 모든 변수는 참조형 변수같다... 아닐수도?.
- 숫자로 바꾸기 : Number, parseInt, 단항연산자
- 문자열로 바꾸기 : toString, + ""
- 불리언으로 바꾸기 : 앞에 !붙이기, Boolean, 조건문