javascript 중급 강좌

구잉·2022년 7월 4일

var vs let:
var는 같은 변수 여러번 사용 가능
var는 선언하기 전에 사용 가능(hoisting)


생성자 함수: 같은 객체 여러개 만드는 경우 사용(java의 class)
computed property: 객체 변수에 [변수이름]으로 표기하여 변수 값을 바로 객체에 넣을 수 있음


Object.assign(): 객체를 복사(call by reference 방지), 객체 합치기도 가능
Object.key(), Object.values(), Object.entries(): 객체의 key, value, key-value를 반환
Object.fromEntries():key-value쌍을 객체로 변환


Symbol: 유일한 식별자(전체 코드 중 하나) -> 특정 위치에 원본 데이터를 건드리지 않고 변수 추가 가능(description으로 확인 가능)
Symbol.for(): 전역 심볼, 키를 통해 같은 symbol 공유

const user = {
  name: "mike",
  age: 39,
  showName: "abc",
};

//user.showName = function(){};

const showName = Symbol('show name');
user[showName] = function(){
  console.log(this.name);
}

user[showName]();

for(let key in user){
  console.log(`His ${key} is ${user[key]}.`);
}

reduce(): 누적값 계산 함수


배열 구조 분해: 객체나 배열의 속성을 분해해서 그 값을 변수에 담음

let [x, y] = [1, 2]
let [a, b] = [b, a] //a와 b 교환

나머지 매개변수, 전개 구문: 함수에 넘겨주는 인수 개수 제약 없음 -> 정해지지 않은 인수 개수를 의미(가변적으로 인수가 변함, ...으로 사용)


클로져(Closure): 함수가 생성될 당시의 외부 변수를 기억하고 생성 이후에도 계속 접근 가능

function makeadder(x){
  return function(y){
    return x+y;
  }
}

const add3 = makeadder(3);
console.log(add3(2));

setTimeout(함수, 시간, 인수): 일정 시간 지난후 실행(clearTimeout으로 반환)
setInterval(함수, 시간, 인수): 일정 주기마다 반복 실행(clearInterval로 반환)


call: 모든 함수에서 사용 가능, this를 특정값으로 지정
apply: call과 동일하지만 매개변수를 배열로 받음
bind: 함수의 this값을 영구히 바꿈


상속, 프로토타입: __proto__를 통하여 상속(prototype chain 가능)
(prototype 명령어로 따로 줄 수 도 있음)

const car = {
  wheels: 4,
  drive(){
    console.log("drive...");
  }
};

cosnt bmw = {
  color: "red",
  navigation: 1,
};

const benz = {
  color: "black",
};

bmw.__proto__ = car;
benz.__proto__ = car;

class: java의 클래스처럼 사용 (super를 통해 부모 클래스에 정의된 메소드 사용, overriding)


promise: 작업 완료되면 반환하는 함수(Promise.all을 통해 여러 함수를 동시에 수행 가능, Promise.race는 하나라도 끝나면 종료)

const pr = new Promise((resolve, reject) =>{
	//resolve는 성공, reject는 실패
    //callback 함수를 통해 반환 받음
  	//실행하는 함수 작성
});

// 1.
pr.then(
  function(result){
  	//성공시 수행
  },
  function(err){
  	//실패시 수행
  }
);

// 2.
pr.then(
  function(result){
  	//성공시 수행
  }
).catch(
  function(err){
  	//실패시 수행
  }
);

async: 항상 promise 반환, return이 promise면 value를 반환함,
await: async 내부에서만 사용, 함수의 수행이 끝날때까지 대기 후 다시 진행


generator: 함수의 실행을 중간에 멈췄다가 재개할 수 있는 기능, *과 yield로 실행, next()를 통해 yield 분기를 실행

profile
시작을 두려워하지말자

0개의 댓글