[혼공챌린지 : 혼공단 7기 Javascript] 혼자 공부하는 자바스크립트 5주차

김진환·2022년 2월 19일

5주차

기본 미션 : 객체, 속성, 메소드가 무엇인지 설명하기

객체(object)란?

자바스크립트에서 "객체"란 여러 자료를 한 꺼번에 다룰때 사용합니다.

객체는 "객체 지향 프로그래밍"에서 사용되는 언어로,
"실제로 존재하는 존재"를 프로그래밍적으로 표현하기 위한 기법입니다.

실제 사물이나 생물을 프로그램(코드)으로 옮기며,
각 사물이나 생물을 하나의 객체로서 표현하여 프로그래밍하는 것이
"객체 지향 프로그래밍"입니다.

속성(property)이란?

자바스크립트의 객체가 가지고 있는 값을 "속성"이라고 합니다.

객체가 가지는 "상태들의 값"을 의미합니다.
실제로 존재하는 수 많은 객체에는 각각의 다른 특성을 가지는 값들이 존재하며,
해당 값들을 "속성"이라고 합니다.

예를 들어 사람을 객체로 표현한다면,
"속성"으로 다른 사람 객체와 구별하기 위한 값으로
"이름", "키", "몸무게", "직업", "취미" 등을 가질 수 있습니다.
각 해당 값들을 "속성"이라고 합니다.

메소드(method)란?

자바스크립트의 객체가 가지고 있는 속성 중 자료형이 "함수"인 속성을 "메소드"라고 합니다.

객체가 하는 "행동"을 의미합니다.
실제로 존재하는 객체가 동작하는 것을 각각의 "함수"로 표현하여 객체 내부에 가지고 있게됩니다.
해당 "함수"들을 "메소드"라고하며 다른 언어에서는 멤버 함수(member function) 또는 인스턴스 함수(instance function) 등의 용어로 많이 사용됩니다.

선택 미션 : p.288 확인 문제, 3번 풀고, 풀이 과정 설명하기

문제

모질라 문서에서 Math 객체와 관련된 내용을 읽고 사인 90도의 값을 구해보세요.
참고로 사인 90도는 1입니다. 아주 단순하게 생각해서 구현하면, 0.8939966636005579라는 결과가 나옵니다.
0.8939966636005579가 나왔다면 왜 그런지, 그리고 이를 어떻게 해야 제대로 사용할 수 있는지 구글 검색 등을 활용해서 알아보고 코드를 수정하세요.

코드

console.log(Math.sin(90));
// >> 0.8939966636005579

console.log(Math.sin(Math.PI / 2));
// >> 1

코드 설명

Math.sin() 함수 소개

Syntax
Math.sin(x)
파라미터
  • x : 숫자 (라디안)
반환 값
  • 주어진 숫자의 사인 값 (-1과 1사이)

0.8939966636005579 가 나오는 이유

Math.sin() 함수의 경우 입력 값을 일반적인 "육십분법"인 "도(º)"를 사용하지 않고,
"호도법"인 "라디안(rad)"를 사용하여 입력해준다.

따라서, 일반적인 90º 각도를 Math.sin()함수로 사용할 때 90으로 입력하면,
입력 값으로 90rad를 넣어주게 되어서, 90º 각도를 입력하는게 되지 않습니다.

정상적인 사용을 위해서는 90º를 넣어주기 위해서는 90º를 호도법으로 변환해서 넣어줘야 합니다.
호도법으로 90º는 π가 180º이므로, π/2 입니다.
따라서, 입력 값으로 π/2를 넣어주면, 정상적으로 90º를 입력하게 되며, 출력 값으로 1이 나오게 됩니다.

결과 화면

profile
발전 중인 주니어 개발자

0개의 댓글