null과 undefined
- null: 프로그래머에게 허용된 데이터 타입
- undefined : 자바스크립트에서 사용
- 명시적으로 undefinde를 할당하지 않는 것을 권장함
객체
const obj = {}; // 빈 객체 obj.color = "yellow"; obj["not an identifier"]=3; const SIZE = Symbol(); // 심볼도 프로퍼티가 될 수 있다 obj[SIZE]=8;
const obj2 ={ name="Sam"; classification: { // 객체도 프로퍼티가 될 수 있다 kingdom:'Anamalia', phylun:'Chordata', } } obj2.speak=function(){return "Meow!";}; // 객체에 함수를 담을 수도 있다 obj2.speak(); // "Meow!" delete obj2.classification; // classification 프로퍼티 제거
Number,String,Boolean 객체
- 숫자,문자열,불리언에는 각자 대응하는 객체 타입이 있다
- 특수한 값 저장을 위해
- 함수 형태로 기능 제공을 위해
const s = "hello"; s.toUpperCase(); // "HELLO"
- 자바스크립트는 일시적인 string 객체를 생성하고, 함수를 호출하는 즉시 임시 객체를 파괴한다.
배열
- 자바스크립트 배열의 특징
- 배열 요소는 0으로 시작한다.
- 요소의 데이터 타입을 가리지 않는다.
- 배열 크기는 고정되지 않는다
const a1 = [1,2,3,4]; const a2 = [1,"two",3,null]; // 여러 가지 타입으로 구성된 배열 const a3 = [ // 여러 줄로 정의한 배열 'a', 'B', 'c', ]; const a4 = [ // 객체가 들어있는 배열 {name: "a", num: 1}, {name: "b", num: 2}, ]; const a5 = [ // 배열이 들어있는 배열 [1,3,5], [2,4,6], ]; a3.length; // 3(요소의 개수 반환) a3[0]; // 'a'(첫번째 요소) a3.[a3.length-1]; // 'c'(마지막 요소) a3[2]='z'; // a3 = ['a','b','z']
객체와 배열 마지막의 쉼표
- 객체와 배열 요소를 여러 행에 나눠 썼을때, 마지막에 쉼표가 있다
- trailing comma, dangling comma, terminal comma 등으로 불린다
- 인터넷 익스플로러 초기 버전과 JSON에서는 마지막 쉼표를 허용하지 않는다.
- 각 팀의 스타일 가이드를 따르도록 한다.
날짜
- 내장된 Date객체에서 담당
const now = new Date(); now; // 현재 날짜 객체 생성 const halloween = new Date(2020, 9, 31); // 특정 날짜에 해당하는 객체 // 월은 0부터 시작한다(9==10월) const halloweenParty = new Date(2020,9,31,19,0); // 특정 날짜, 시간에 해당하는 객체
- 날짜 객체를 만들면 각 부분을 가져올 수 있다.
haloweenParty.getFullYear(); haloweenParty.getMonth(); haloweenParty.getDate(); haloweenParty.getDay(); haloweenParty.getHours(); haloweenParty.getMinutes(); haloweenParty.getSeconds(); haloweenParty.getMilliseconds();
정규표현식
- 문자열에서 필요한 복잡한 검색과 교체 작업을 비교적 단순하게 만든다.
// 이메일 정규표현식 const email = /\b[a-z0-9._-]+@[a-z_-]+(?:\.[a-z]+)+\b/;
맵과 셋
- 맵: 키-값 연결
- 셋: 배열과 유사하지만 중복값 허용하지 않음
데이터 타입 변환
- 문자열을 숫자로 변환
- 1) Number 객체 생성자 이용
const numStr = "33.3"; const num = Number(numStr); // Number객체의 인스턴스가 아닌, 숫자 값을 생성한다 // 숫자로 바꿀 수 없는 문자열은 NaN 반환
- 2) parseInt나 parseFloat 함수를 이용
const a = parseInt("16 volts", 10); // 숫자가 아닌 문자 무시, 10진수 16 const b = parseInt("3a", 16); // 16진수 3a == 10진수 58 const c = parseFloat("15.5 kph"); // 15.5(기수가 항상 10이라 가정)
- 3) Date객체 - valueOf() 메서드 이용
const d = new Date(); const ts = d.valueOf(); // UTC 1970년 1월 1일 자정으로부터 몇 밀리초가 지났는지 나타내는 숫자
- 4) 불리언 - 조건 연산자 사용
const b = true; const n = b ? 1 : 0;
- 1) Number 객체 생성자 이용
- 문자열로 변환
- toString() 메서드 이용
const n = 33.5; n; // 33.5 const s = n.toString(); s; // "33.5" const arr = [1, true, "hello"]; arr.toString(); // "1, true, hello"
- toString() 메서드 이용
- 불리언으로 변환
- 부정 연산자를 사용하거나, Boolean 생성자 사용
const n=0; const b1 = !!n; // false const b2 = Boolean(n); // false
- 부정 연산자를 사용하거나, Boolean 생성자 사용
'프로그래밍 > Javascript' 카테고리의 다른 글
[JavaScript] ES6 자료형 정리 (1/2) (0) | 2020.01.02 |
---|