JavaScript 6

await 와 async

컴파일 언어인 java와 그 프레임워크 spring을 기반으로 공부했던터라 자바스크립트에 대한 이해가 부족했었다. node.js 로 백엔드 예제를 만들다가 만난 경험을 적어본다. 자바스크립트는 싱글 스레드 기반의 인터프리터 언어이다. 때문에 동시성을 갖고 작업을 하기 위해서는 비동기 방식이 쓰이게 된다.  동기동시에 일어난다는 뜻을 가지고 있고 어떤 요청이 들어왔을 때 응답이 한자리에서 동시에 일어난다는 의미한가지 작업을 하면 결과가 반환 될 때까지 다른 작업이 대기한다.비동기어떤 요청이 들어오면 한자리에서 동시에 응답이 일어나지 않는다.여러 요청을 번갈아가며 수행한다. 비동기 처리가 백그라운드에서 동작하면 동시성을 갖는 작업의 결과 중 어떤 작업이 먼저 결과가 반환될지 알수가 없다.때문에 작업 완료된 ..

JavaScript 2024.05.28

Symbol

Symbol 심볼은 Symbol 함수를 호출 해 생성할 수 있다. 생성되는 심볼은 변경 불가능한 원시 타입이다. Symbol은 유일한 식별자로써 안에 가지고 있는 값이 같은 두 객체를 === 비교 하여도 같지 않다는 결과를 얻을 수 있다. const a = Symbol(); const b = Symbol(); a===b; //-> false a==b; //-> false const id = Symbol('id'); const id2 = Symbol('id'); id === id2// false const id = Symbol('id'); const user = { name : 'Mike', age : 30, [id] : 'myid' } Object.keys(user); // ["name","age"] S..

JavaScript 2024.01.21

Object 메서드 정리

Object 메서드 Object.assign() : 객체가 복제된다. const user = { name : 'A', age : 20, } const cloneUser1 = user //복제된것이 아니라 객체 참조 값이 들어감으로 같은 주소를 가르킨다. const cloneUser2 = Object.assign({}, user); //{}로 정의된 빈 객체에 user가 들어감, user 내부의 인스턴스를 덮어쓰는 구조 -> 복제 Object.values() : 객체의 값을 배열 반환한다. const user = { name : 'A', age : 20, } var str = Object.values(user); console.log(str); /* ['A', 20] */ Object.entries() :..

JavaScript 2024.01.12

변수와 생성자 함수

변수 호이스팅 : 스코프 내부 어디서든 변수 선언은 최상위에서 선언된 것로 인식된다. TDZ : 변수에 값을 할당하기 전엔 사용할 수 없다. let은 스코프 단위에 적용되는 변수이다. 때문에 아래 코드는 애러가 발생한다. 이는 let 변수는 호이스팅이 되지 않는 것이 아니라 showAge()라는 function의 스코프 안에서만 유효하기 때문에 로그에 age 가 인식 되지 않는 것이다. let age = 30; function printAge(){ console.log(age); let age = 20; } showAge() //30 var 생성 과정: 선언 + 초기화 할당 let 생성 과정 선언 초기화 할당 let은 var와 다르게 선언과 초기화가 분리되어 있다. var는 변수 선언과 동시에 초기화 되..

JavaScript 2024.01.05

JavaScript에서 Object 및 this

JS 객체 형식 예시) const 객체명 = { 프로퍼티 : ‘값’, } 자바 객체의 특징 1. 함수의 프로퍼티 - 선언된 객체의 내부 프로퍼티는 확정된 틀이 아니며 추후 프로퍼티와 값이 추가될 수도 있다. 예시) const obj = { name : 'a', age : 10, } obj.id = 1; obj['gender'] = 'male'; console.log(obj) /* { "name": "a", "age": 10, "id": 1, "gender": "male" } */ delete obj.gender; console.log(obj) /* { "name": "a", "age": 10, "id": 1 } */ 2. 함수를 통한 생성 - 함수를 정의 하고 함수를 실행하면서 객체를 만들어 변수에 넣을..

JavaScript 2023.12.27

자바스크립트 기본

자바스크립트의 역할 HTML : 웹의 구조 CSS : 꾸며주는 역할 JS : 동적 요소 변수 자바와 같이 변수를 변경 할 수 있다 변수의 이름은 숫자로 시작할 수 없음 자바스크립트의 변수는 타입을 지정할 필요 없으며 타입을 인식함 var 변수이름; -> 변수 선언 변수이름 = ""; 변수 초기화 ""의 경우 String var 변수이름 = 초기화 값 console.log(변수); -> 변수 출력 자바스크립트 적용 로 스크립트 코드를 연동 시킴 변수의 타입 JS에서 타입의 특징정적 타입(static/strong type)의 언어이를 명시적 타입 선언(explicit type declaration)이라 한다 컴파일 시간에 변수의 타입이 결정되는 언어 대표적으로 C,JAVA가 있다 정적 언어는 변수에 들어갈 ..

JavaScript 2023.12.16