객체란?
"실제로 존해하는 사물"을 의미하고 "이름과 값으로 구성"된 속성을 가진 자바스크립트의 기본 데이터 타입을 객체(Object)라고 한다.
<script>
const array = {
제품명: "7D 건조망고",
유형: "당절임",
성분: "망고, 설탕, 메타중아황산나트륨, 치자황색소",
원산지: "필라핀"
};
</script>
객체는 위처럼 중괄호{...}로 생성하며, 형태의 자료를 쉼표(,)로 연결해서 사용하며, 키(Key)를 사용한다.
객체는 대괄호[...] 또는 온점(.)을 이용하여 객체의 요소에 접근할 수 있다.
console.log("product 제품명", product.제품명);
console.log("product 유형", product.유형);
console.log("product 성분", product.성분);
console.log("product 원산지", product.원산지);
객체를 생성 이후 동적 속성 추가(동적으로 객체를 추가), 동적 속성 제거(delete 키워드를 사용하여 객체의 속성을 제거)가 가능 하다.
속성이란?
객체 내부에 있는 값을 속성(property)이라고 한다.
<script>
const object = {
number: 273,
string: "구름",
boolean: true,
array: [52, 273, 103, 32],
};
</script>
위의 코드처럼 객체의 속성도 모든 형태의 자료형을 가질 수 있다.
메소드란?
객체의 속성 중 함수 자료형인 속성을 메소드(method)라고 한다.
<script>
const pet = {
name: "구름",
eat (food) {
alert(this.name + "은/는" + food + "을/를 먹습니다.");
},
};
// 메서드 호출
pet.eat("밥");
</script>
객체는
속성과 메소드를 가질 수 있는 모든 것은 객체이며 배열 ,함수 등도 객체에 포함된다. 기본 자료형은 포함되지 않는다.
<script>
// 기본 자료형은 속성을 포함하지 않기 때문에 변수를 생성하고 그 변수에 10이라는 값을 추가해도 추가되지 않는다.
const f = 237;
f.sample = 10;
console.log("f", f.sample);
----------------------------------------
// const 객체 = new 객체 자료형 이름()
// 이렇게 사용하면 일시적으로 객체로 승급되어 속성 추가가 가능해진다.
const a = new Number(273);
a.sample = 10;
console.log("a :", a.sample);
</script>
결과!
위처럼 일시적으로 객체로 승급시키는 것이 아닌 prototype를 이용하여 속성과 메소드를 추가할 수 있도록 한다.
<script>
// indexOf(data) >= 0; 코드를 사용하면 문자열이 포함되어 있으면 true , 포함되어 있지 않으면 false로 결과값이 return 된다.
String.prototype.contain = function (data) {
return this.indexOf(data) >= 0;
};
Array.prototype.contain = function (data) {
return this.indexOf(data) >= 0;
};
const a = "안녕하세요";
console.log("안녕 in 안녕하세요", a.contain("안녕"));
console.log("없는데 in 안녕하세요", a.contain("없는데"));
const b = [273, 32, 103, 57, 52];
console.log("203 in [273,32,103,57,52]: ", b.contain(273));
console.log("0 in [273,32,103,57,52]: ", b.contain(0));
</script>
결과!
<script>
const degree = 90;
const sin = Math.sin(degree);
console.log("degree", sin);
</script>
결과!
정말 단순하게 구현하면 0.8939966636005579라는 결과값이 나온다.
그래서 변경한 코드를 변경했다.
<script>
const degree = 90;
const radian = Math.sin((degree * Math.PI) / 180);
const sin = Math.sin(Math.PI / 2);
console.log("radian", radian);
console.log("sin 값", sin);
</script>
결과!
기본적인 degree 값이 있고 sin값을 구하기 위해서는
Math.sin(x)로 값을 구해야 된다고 생각하지만, 이 메소드는 라디안으로 주어진 각도의 사인값인 -1과 1사이의 수를 반환하기 때문에 0.8939966636005579라는 결과값이 나온다고 한다.
라디안이란 각의 크기를 재는 SI 단위라고 한다.
라디안에 대해서는 밑에 참고블로그를 참고하면 될 듯 하다.
그래서 라디안으로 나온 값을 또 변환을 해줘야 한다고 한다.
결론은! 라디안 값을 Math.PI라는 객체를 이용하여 PI를 곱하고 그 값을 180으로 나누어서 1이라는 값이 나오도록 한다.
https://ui-tricks.tistory.com/16
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=scyan2011&logNo=221653678308