팩토리얼function factorial(n) { let result = 1; if(n !== 0){ // 만약 n이 0이 아니라면 // i는 1부터 n까지 1씩 증가하면서 result와 곱셈 실행(팩토리얼 연산) for(let i = 1; i거스름돈 구하기function calculateChange(payment, cost) { let change = payment - cost; let tTh5 = 0 // 5만원 let tTh1 = 0 // 1만원 let th5 = 0 // 5천원 let th1 = 0; // 1천원 // change가 0이 될 때까지 반복 while(change !== 0){ if(change >= 50000){ /..
함수 다루기함수 생성함수 선언(Function Declaration) : 함수 선언 전 호출 가능(호이스팅) | 보통은 이 방법 사용함수 표현식(Function Expression) : 함수 선언을 변수에 할당(값처럼 사용) | 변수 특성상 선언 이전에 접근 불가기명 함수 표현식 : 함수 표현식으로 함수 생성시 함수에 이름을 붙여줌 | 함수 이름은 함수 내부에서 함수 자체를 가리킬 때 사용할 수 있고, 함수를 외부에서 함수를 호출할 때 사용할 수는 없음 | 함수 내부에서 함수 자신을 사용하려고 할 땐 함수표현식에선 반드시 기명 함수 표현식을 사용하는 것이 좋음// 1. 함수 선언(Function Declaration)function 함수이름(파라미터) { 동작 return 리턴값;}// 2. 함수 표..
객체 지향 프로그래밍추상화 : 어떤 구체적인 존재를 원하는 방향으로 간략화해서 나타내는 것주의 : 클래스, 프로퍼티, 메서드 이름을 잘 지어야 함... 직관적이고 쉽게캡슐화 : 객체의 특정 프로퍼티에 직접 접근하지 못하도록 막는 것 ~> 특정 메서드를 통해 접근함프로그래밍에서 보통 숨기고자 하는 프로퍼티 앞에 언더바(_)를 붙임 | ex. _nameJS에선 캡슐화를 자체적으로 지원하는 문법은 아직까진 없다... (자바의 경우 private를 통해 지원)class User { constructor(email, birthdate) { this.email = email; this.birthdate = birthdate; } buy(item) { console.log(`${this.emai..
객체 지향 프로그래밍? 객체 간의 상호작용을 중심으로 하는 프로그래밍 | 오늘날 많이 사용하는 방법객체? 실제 존재하는 무언가변수 : 객체의 상태를 나타냄(프로퍼티)함수 : 객체의 행동을 나타냄(메소드)절차 지향 프로그래밍 : 변수와 함수를 가지고 작업 순서에 맞게 코드를 작성하는 것 | 이전까지는 이 형태를 사용Object Literal : 객체를 나타내는 문자열// 중괄호를 쓰고 그 사이에 프로퍼티와 메서드를 넣음const user = { email : 'duran@gmail.com', birthdate : '1999-11-10', buy(item){ console.log(`${this.email} buys ${item.name}`); },}Factory functi..