본문 바로가기

js27

node 비동기 작업의 실행원리 (process.nextTick) node는 기본적으로 단일 스레드로 작동된다.그러므로 setTimeout과 같은 비동기 호출이 들어왔을때 지정된 시간이 지난다면메인 스레드의 실행큐에 전달돼 현재작업 이후에 실행된다.setTimeout(() => { console.log(2);}, 1000);while (true) console.log(1); 위와 같은 코드는,node 메인 스레드의 비동기작업을 담당하는 queue에 담겨 대기하다가 1초뒤에 실행 queue로 옮겨지겠지만,이미 실행 queue는 독점하고있는 "console.log(1)" 라는 실행자원이 있기때문에 우리가 2라는 숫자를 볼 일은 없을것임즉 setTimeout을 쓴다고 바로 실행되지않고 실행요청을 하는것이라고 이해하는게 좋을듯 아래 소스코드를 실행하면 어떻게될까?setTim.. 2024. 12. 5.
js object string,array,number와 같이 object라는 자료형이 있다. //오브젝트const food = { name : 'hamburger', price : 1500}//배열const foods = ['hamburger','pasta','salad'] 배열(array)을 예를 들어 설명하자면 1. 먼저 둘다 여러 값들이 들어 갈 수 있다.2. 다만 배열은 특정한 특징을 정하고 그 안에 속하는 여러가지데이터들이 존재하는 것이고,  -  [ foods란 배열을 특징으로 삼고 그안에 속하는 'hamburger', 'pasta', 'salad' 들이 있다. ]3. 오브젝트는 특정한 객체를 정하고 그 객체에 대해 '팔은 두개고 다리는 세개야' 라고 하는 것처럼 설명해준다고 보면 된다.  -  [ food의 .. 2024. 11. 9.
js Class 출처 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Classes Classes - JavaScript | MDNClass는 객체를 생성하기 위한 템플릿입니다. 클래스는 데이터와 이를 조작하는 코드를 하나로 추상화합니다. JavaScript에서 클래스는 프로토타입을 이용해서 만들어졌지만 ES5의 클래스 의미와는developer.mozilla.org 선언식 기본 예시class Rectangle { constructor(height, width) { this.height = height; this.width = width; }}# 아래처럼 속성을 바로 할당한다면# constructor를 축약해서 사용도 가능# class Re.. 2024. 10. 15.
js 2진수, 8진수 사용하기 8진수, 2진수 값을 사용할때 숫자 값 앞에 '0o', '0b' 를 달아주면 자동으로 변환해줌 let octal = 0o10; // 8진수 10은 10진수로 8console.log(octal); // 출력: 8 let binary = 0b1010; // 2진수 1010은 10진수로 10console.log(binary); // 출력: 10 참고로 반대로 2진수나 8진수로 변환하려면 toString을 사용하면됨let decimal = 10;let octal = decimal.toString(8);console.log(octal); // 출력: "12"// 10의 값을 8진수로 변환하여 12의 값이 나옴 2024. 10. 13.
js Object Literal Syntax Extension (키 값 동적으로 생성) 키 값을 동적으로 생성할때 const a = {name:'aaa'};const b = 'age';a[b] = 15;console.log(a) // {name: 'aaa', age: 15}; 이렇게 생성가능하지만, 한번에 생성해주고싶다면const d = {  name: 'aaa',  [c]: 15};이렇게 깔쌈하게 작성하기 2024. 10. 13.
js rest parameters 정해진 매개변수 이외에 추가로 규격이정해지지 않은 인자를 배열형태로 받는 문법function func(a,...array) { console.log(a) // 1 console.log(array); // [ 2, 3] console.log(Array.isArray(array)); // true}func(1, 2, 3); 2024. 10. 8.