[부트캠프] JavaScript 5일차

RedPanda·2022년 7월 26일
0

이전 수업 & 추가 내용

  • 생성자 함수의 리턴값은 this이므로 함수 몸체에 리턴값을 넣을 필요가 없다.

  • 암묵적 변환 : JavaScript의 메소드 중 인수에 string을 넣어도 숫자값이면 저절로 타입이 바뀐다.

  • 내부 메소드 실행 순서는 앞에서부터! (ex. str.subString().length; -> subString 변환 후 길이 반환)

  • const는 선언과 동시에 초기화해주어야 함.

    필기 내용

<함수의 축약 표현>

  • 생성자 내부의 메소드는 이름으로 축약할 수 있다. (ex. bar : function(){} -->> bar(){} // 객체 생성의 차이로 전자는 일반함수이지만 후자는 메소드라고 할 수 있음.);

  • 메소드는 생성자가 없어 new를 사용하지 못한다.

  • 화살표 함수는 표현식이 하나이면 결과값을 즉시 리턴한다. (return 생략 가능)

  • 화살표 함수에서 객체 리터럴을 반환할 경우 소괄호로 감싸주어야 한다.( => ({id, content});)

  • 함수 내에서 한줄에 변수를 선언할 수 없다. ( => const x = 1;// X )

  • 화살표 함수는 인스턴스를 생성할 수 없다. (생성자 함수로 호출 X)

  • 화살표 함수 내의 this는 언제나 상위 스코프의 this를 가리킨다.

function Prefixer(prefix){
    this.prefix = prefix;
}
Prefixer.prototype.prefixArray = function(arr){
    return arr.map(x => this.prefix + " " + x); // Prefixer를 가리키게 됨.
};
var pre =  new Prefixer("Hi");
console.log(pre.prefixArray(["Lee", "Kim"]));

<나머지 매개변수(REST)와 디폴트 매개변수>

  • rest는 배열로 리턴되며, 앞쪽부터 매개변수를 지정할 수 있음.(ex. func(par1, par2, ...rest) )

  • 디폴트 매개변수(매개변수 기본값) : 인수 개수가 달라도 에러가 발생하지 않기 때문에 디폴트값을 넣어 undefined에 대한 예외처리를 해준다.

<FOR ...OF 루프>

  • 반복 가능한 객체를 통해 루프를 만들어 준다. (Python의 for루프와 동일)

<let과 const>

  • let과 const는 전역객체가 아니라 선언적 환경 레코드(?)에서 선언되므로 window에서 찾을 수 없다.

  • const는 선언과 동시에 초기화를 해야한다.

  • const가 객체이면 객체 안에서 프로퍼티의 값을 바꾸는 것은 가능하나, 키값을 추가, 삭제는 불가하다.

<빌트인 객체>

  • Math : round() = 반올림 / ceil() = 올림 / floor() = 내림 / sqrt() = 제곱근 / random() = 무작위(0~1 사이의 실수) / pow() = 제곱 / max() = 최댓값 / min() = 최솟값

  • Date : 연,월,일,시,분,초,밀리초를 지원 (포맷은 MDN을 참조하자. 그게 마따.) / now() = 현재시각까지의 차이값을 밀리초로 변환 / getFullYear() = 년도 / getMonth() = 월(0~11) / getDate() = 날짜(1~31) / getDay() = 요일(0~6)

  • String : length = 길이 반환 / indexOf() = 인자값 검색 후 첫번째 인덱스 반환 / startsWith() = 문자열 시작 여부 확인(bool값 리턴) / endsWith() = 문자열 끝 여부 확인 / subString(), slice(), substr() = 문자열 자르기(첫인덱스~끝인덱스-1, 전자와 같으나 음수 가능, 첫인덱스~문자개수) / toUpperCase() , toLowerCase() = 대소문자 변환 / trim() = 공백문자 제거 / repeat() = 인수만큼 반복(0과 양수(정수)만 가능) / replace() = 첫 인자를 두번째 인자로 치환 / split() = 인자로 문자열을 잘라 배열로 반환 /

<배열>

  • JavaScript의 배열은 연속적으로 이어진 메모리의 자료구조가 아니기 때문에 기본적인 배열과 다르다. (밀집 배열 VS 희소 배열) -> 일반적인 배열을 흉내낸 객체이다. (어떤 타입도 배열 가능)

  • 빈 배열의 길이를 설정해도 배열의 요소를 넣으면 길이가 바뀜.

  • 내장함수 : of() = 인수로 갖는 배열을 생성 / from() = 이터러블 객체를 인수로 받아 배열로 변환

  • 배열 추가 -> array[maxLen] = element (maxLen < 원하는 index 위치 -> 빈 요소 반환) / 배열 삭제 -> delete array[index]

profile
끄적끄적 코딩일기

0개의 댓글