자바스크립트 동작 원리모던 자바스크립트? ECMAScript : JS 표준 명세서 (공식문서)데이터 타입의 특징과 종류JS의 경우, 다른 언어들보다 좀 더 유연하게 데이터 타입 지정 가능number, string, boolean, null, undefined, object | symbol(유일값), bigint(엄청 큰 숫자)// Symbol -> 다른 어떤 값과 비교해도 true가 될 수 없는 고유한 변수가 됨const user = Symbol('this is a user');user === 'this is user'; // falseuser === true; // falseuser === false; // false// 똑같은 설명을 붙인 심볼을 만들어도 두 값을 비교하면 false 반환const s..
객체 지향 프로그래밍추상화 : 어떤 구체적인 존재를 원하는 방향으로 간략화해서 나타내는 것주의 : 클래스, 프로퍼티, 메서드 이름을 잘 지어야 함... 직관적이고 쉽게캡슐화 : 객체의 특정 프로퍼티에 직접 접근하지 못하도록 막는 것 ~> 특정 메서드를 통해 접근함프로그래밍에서 보통 숨기고자 하는 프로퍼티 앞에 언더바(_)를 붙임 | 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..
자료형 심화다양한 숫자 표기// 지수 표기법let a = 1000000000;let b = 1e9;console.log(a === b);>> true // a와 b는 같은 의미console.log(25e5 === 2500000); >> trueconsole.log(5.3e3 === 5300); >> trueconsole.log(-6.1e8 === -610000000); >> trueconsole.log(16e-5 === 0.00016); >> trueconsole.log(3.5e-3 === 0.0035); >> trueconsole.log(-9.1e-5 === -0.000091); >> true// 16진법let hex1 = 0xff; // 255let hex2 = 0xFF; // 255// 8진법let..