기초부터 완성까지 프론트엔드 - day2
Day 2
오늘 읽은 범위
- 3장 자바스크립트 기초 - 타입과 구문
- 4장 자바스크립트 기초 - 타입변환과 함수
책에서 기억하고 싶은 내용을 써보세요.
변수 선언
var
: 값 덮어쓰기 가능, 함수 스코프를 기준으로 동작let
: 재선언 불가, 블록 스코프를 기준으로 동작const
: 재선언 불가, 블록 스코프를 기준으로 동작, 값 변경 불가능
※ 스코프 : 어떤 변수들에 접근할 수 있는지 정의한 범위
원시 타입 (Primity Type)
- 하나의 값만 가짐
- 불변 데이터 (값 변경 X)
number
: 숫자 타입- NaN: Not A Number; 숫자가 아님;
string
: 텍스트 타입boolean
: 참과 거짓 (true, false)null
: 값이 없음 (의도적으로 값이 없음을 나타낼 때 사용)undefined
: 값이 없음 (값이 할당되지 않음을 나타낼 때 사용)Symbol
: 데이터의 유일함을 나타낼 때 사용- 객체나 클래스에서 유일한 프로퍼티를 만들 때 사용
BigInt
: 큰 정수를 안정적으로 표현할 때 사용- 숫자타입이나 Math 객체의 메서드와 함께 사용 불가능
객체 (참조형)
이름(키):값
형태로 여러 값을 포함하는 형태- 원시 타입이 아닌 모든 값
객체 생성하는 3가지 방법
const object = new Object()
,
- 객체 리터럴
const object = {}
,
- 객체 리터럴
- 생성자 함수 (화살표 함수는 this 바인딩을 하지 않기때문에 사용할 수 없음)
1 2 3 4 5 6
// 생성자 함수 예 function Vehicle(type) { this.type = type; } const object = new Vehicle("Car"); // {type: 'Car'}
- getter : 접근자 프로퍼티에 접근할 때 호출
- setter : 접근자 프로퍼티 값을 변경할 때 호출
배열
- 순서가 있는 데이터의 집합
- 객체지만, 정수 타입인 인덱스를 갖는 특별한 데이터
- 희소 배열: 연속적이지 않고, 중간에 빈 배열
shift()
: 배열 첫번째 원소 삭제, 삭제된 원소 반환unshift()
: 배열 첫번째 인덱스에 원소 추가, 새로운 길이의 배열 반환push()
: 배열 마지막 인덕스에 원소 추가, 새로운 길이의 배열 반환pop()
: 배열 마지막 원소 삭제, 삭제된 원소 반환splice()
: 배열의 원소를 추가허가나 교체, 삭제하여 데이터 변경, 삭제된 원소 반환sort()
: 정렬할 때 사용concat()
: 기존 배열에 합쳐 새로운 배열을 반환slice()
: 특정 범위의 원소를 복사해 새로운 배열 생성map()
: 배열의 모든 원소에 인자로 받은 함수 실행, 새로운 배열 반환forEach()
: 배열의 모든 원소에 인자로 받은 함수 실행filter()
: 함수의 테스트를 통과하는 원소들로 새로운 배열 반환
타입 변환
- 명시적 강제 변환: 명확하게 의도를 갖고 타입을 변환하는 것
- (문자열_
String()
- 숫자_
Number()
,parseInt()
- 불리언 타입_undefined,null,’’,{},[])
- (문자열_
- 암시적 강제 변환: 연산 중에 내부적으로 타입을 변환하는 것
함수
- 문(statement)로 구성된 몸체를 가진 하나의 실행단위
- 콜백함수: 다른 함수의 인자로 넘어가는 함수
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
며칠 전에 변수(var,let,const)와 스코프,자바스크립트의 함수,this와 bind에 대해 학습했는데 책을 읽으며 다시 한번 복습하게 되었던 시간이었다. 또한 문자열 타입을 변환하는 String()
과 toString()
의 차이에 대해 궁금했었는데 이 책을 통해 String()
은 모든 값을 문자열로 변환시켜주는 반면 toString()
은 null과 undefined에 대해 실행하면 오류가 발생한다는 사실에 대해 알게되었다.
This post is licensed under CC BY 4.0 by the author.