오늘 공부한 내용 요약
아무 함수에도 속하지 않은 this는 언제나 window 객체를 참조한다.
stirct 모드에서는 undefined를 참조.
함수에 속해있는 경우 this의 값은 함수를 호출하는 방법에 따라 값이 결정됨
함수와 객체의 구분이 명확하지 않은 자바스크립트에서는 this가 둘을 구분하는데 거의 유일한 방법임
전역공간에서 this는 전역객체
변수선언 대신에 window의 프로퍼티에 직접 할당해도 선언한것과 동일한 결과 나옴
let a = 1;
window.b = 2;
console.log(a, this.a); // 1 1
console.log(b, this.b); // 2 2
window.a = 1;
console.log(a, this.a, window.a); // 1 1 1
예외로 삭제명령 일때는 다를 수 있음
let a = 1;
delete window.a; // false
console.log(a,this.a); // 1 1
window.a = 1;
delete window.a; // true
console.log(a, this.a); // 오류
메서드, 객체, 프로퍼티 개념 다시 이해
함수와 메서드 둘다 정의된 동작을 수행하는 것 / 차이는 독립성
함수는 독립성이 있고 메서드는 호출한 대상 객체의 동작을 수행함.
메서드는 객체의 프로퍼티에 할당된 함수 x
함수를 객체의 프로퍼티에 할당하는 것뿐 아니라 객체의 메서드로서 호출할 경우에만 동작한다.
그렇지 않으면 함수로 동작함
함수로서 호출과 메서드로서의 호출은 간단히 함수앞에 점이 있는지 여부로 구분이 가능
객체는 참조형데이터 타입으로 배열, 함수,날짜,객체, map, set 등으로 숫자형, 문자형, null, undefined 등의 원시형 데이터 아님
객체는 여러속성을 하나의 변수에 저장할 수 있도록 해주는 데이터 타입
객체에서 명명된 값을 프로퍼티라고 함
객체는 키와 값으로 구성된 프로퍼티들의 집합.
프로퍼티의 값으로 자바스크립트에서 사용할 수 있는 모든 값을 사용가능
프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메서드라 부름
Baekjoon에서 문제풀이
문제 : 두 정수 A와 B를 입력받은 후 A+B를 출력하는 프로그램을 작성해보자.
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)
풀이
A = Math.floor(Number(A));
B = Math.floor(Number(B));
처럼 숫자형으로 바꾸고 소수점을 버려 정수로 만들려했었는데 다른 쓸만한 함수가 있을까 찾아보던 중
parseInt라는 Number처럼 숫자형으로 바꿔주지만 문자열이 포함된 경우에도 숫자까지만을 반환해주는 더 좋아보이는 함수를 찾아 적용해보았으나 아직 답 찾지못함.
(0 < A, B < 10)의 조건을 추가하는 방식 고민중
공부 출처
코어 자바스크립트 -정재남- 지음
BaekJoon
내일 학습 예정
위의 내용은 공부중 본인이 이해한 내용으로 몇몇 틀린 내용이 있을 수 있습니다.
회독중 발견시 수정하겠습니다