JavaScript(함수)

Viva의 놀이터·2021년 2월 2일
0

JavaScript

목록 보기
6/6
post-thumbnail

들어가기전

지금까지 공부 및 프로젝트를 진행하면서 자바스크립트를 사용해왔다. 자바스크립트를 기반으로한 React, typeScript를 사용하면서 자바스크립트의 코어를 이해하지 않고 사용 하려고 하니 쉽지 않았다.

3월까지 시간적으로 여유가 생겨 어떤 것을 공부하면 좋을지 생각하다가 재대로 js 코어에 대해서 공부해보고 한편으로는 머신러닝을 같이 공부하면 좋을 것이라고 생각하였다.

arrow function

arrow function은 기존의 함수를 좀더 간결하게 작성하기 위해서 추가된 문법이다.

그 전에 JS에서는 함수를 object로 취급하기 때문에 변수에 할당이 가능하다. 이를 'First-class function' 이라고 한다. 또한 함수를 선언하는 방법중에서

// 함수에 이름을 정해주고 선언하는 함수를 named function이라고 한다
const sum1 = function sum1(a,b){
 return a+b
}
// 함수에 이름이 없는 선언하는 함수를 anonymous function이라고 한다
const sum2 = function(a,b){
 return a+b	
}

일반적으로 다른 언어의 경우에는 함수를 선언 할 때 
function sum(a,b){
 console.log(a+b)
}
이런식으로 선언을 한다. 하지만 JS에서는 이렇게 선언을 하게 되면 앞서 var변수에서 호이스팅 문제가 발생하는 것 처럼
함수의 선언에서도 호이스팅 문제가 발생을 한다.

sum(4, 5); // 문제없이 실행됨 호이스팅 발생


function sum(a, b) {
  console.log(a + b);
};

따라서 변수안에 함수를 선언한는 것을 선호한다.
함수를 선언하면 
const abc = function(a,b){
 return a+b
}
이런 형식으로 선언이 되는데 Arrow fucntion을 사용하면 
const abc = (a,b)=> a+b //이렇게 짧게 선언이 가능하다

class vs object

class

클래스는 관련있는 변수들을 한데 묶어 놓는 컨테이너 역할을 한다. class의 구성으로는 속성값과 메소드가 들어있다.

class Person{
 name; //속성(fields)
 ager; //속성(fields)
 speak(); //메소드(methods)
}

class 정의보러가기

object

오브젝트는 클래스에 값을 넣어서 생성하는 모든 것을 오브젝트 라고하고 인스턴스라고도 한다.

profile
역사를 잊은 기술에겐 미래가 없다

0개의 댓글