const obj = { latitude: 11.5, longitude: 47.1 };
const result = obj.latitude * obj.longitute; // 보통은 이런 실수는 컴파일러가 잡아줘야 되는데
console.log(result) // NaN이라는 엉뚱한 값 출현!개발자가 임의로 객체의 성질을 수시로 변화 시킬수 있다.
객체속성명이 오타가 나도 그대로 실행되어 없는 값으로 처리 해버린다.
컴파일이란
: 실행되기전에 문법적인 오류를 체크하는 단계
예)
function add(a, b) {
return a + b;
}
const result = add(1, "2") <= 에러가 안뜸
result => "12" 문자타입으로 치환이 되버림
function add(a, b) {
return a + b;
}
const result = add(1, "2") <= 타입에러가 뜸

아래의 Person클래스처럼 private로 캡슐화를 하면
외부에서 직접적으로 constructor에 접근할 수 없다.
class Person {
private name: string;
private age: number; // age가 private인 것을 주목하세요!
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
public growOlder(): void {
this.age += 1;
}
}
const spartan = new Person('Spartan', 30);
spartan.age = 25; // Error: 집적적으로 변경하는것도 에러
console.log(spartan.age); // Error: 직접적으로 조회하는것도 에러
유익한 글이었습니다.