스파르타 코딩클럽 - 리액트 1주차(2)

SeungMai(junior)·2021년 7월 19일

1. Class란?

객체지향 프로그래밍에서 클래스는 특정 객체를 생성하기 위해 변수와 함수를 정의하는 일종의 틀을 말한다. 객체를 정의하기 위한 상태와 함수로 구성되어 있다고 생각하면 되고, 객체 단위로 코드를 그룹화하고 쉽게 재상용하려고 사용한다.

1-1. 클래스를 구성하는 것?
클래스 안에는 객체를 정희하기 위한 상태(property)와 함수가 있다.

class Cat {
	// 생성자 함수
  constructor(name) {
		// 여기서 this는 이 클래스입니다.
		this.name = name; 
	}

	// 함수
	showName(){
		console.log(this.name);
	}
}

let cat = new Cat('perl');
cat.showName();
console.log(cat);
  • 생성자 함수(constructor): 클래스 인스턴스를 생성하고 생성한 인스턴스를 초기화(초기 값을 설정한다고 생각하면된다!)하는 역할을 한다.
  • 함수: 어떤 일을 하는 함수이다.

1-2. 클래스를 상속하려면?
클래스를 상속한다는 건, 이미 만들어 둔 어떤 클래스를 가지고 자식클래스를 만든다는 것이다.

class Cat {
	// 생성자 함수
  constructor(name) {
		// 여기서 this는 이 클래스입니다.
		this.name = name; 
	}

	// 함수
	showName(){
		return this.name;
	}
}

// extends는 Cat 클래스를 상속 받아 온단 뜻입니다.
class MyCat extends Cat {
	// 생성자 함수
  constructor(name, age) {
		// super를 메서드로 사용하기
		super(name); 
		this.age = age; 
	}
	
	// 부모 클래스가 가진 것과 같은 이름의 함수를 만들 수 있습니다.
	// 오버라이딩한다고 해요.
	showName(){
		// super를 키워드로 사용하기
		return '내 고양이 이름은 '+super.showName()+'입니다.';
	}
	
	showAge(){
		console.log('내 고양이는 '+this.age+'살 입니다!');
	}
}

let my_cat = new MyCat('perl', 4);
my_cat.showName();
my_cat.showAge();
  • super 키워드
    • 메소드로 사용할 수 있다(constructor 안에서).
      • 부모의 constructor를 호출하면서 인수를 전달한다.
      • this를 쓸 수 있게 해준다.
    • 키워드로 사용할 수 있다.
      • 부모 클래스에 대한 필드나 함수를 참조할 수 있다.

2. let, const와 scope란?

2-1. 스코프란?

스코프(Scope)란, 우리가 어떤 변수를 선언했을 때, 그 변수를 사용할 수 있는 유효범위를 스코프라고 부른다. 즉, 변수에 접근할 수 있는 범위라고 생각하면 된다.

  • var: 함수 단위
  • let: block단위(변수: let으로 선언한 변수는 값이 변할 수 있다.)
  • const: block단위(상수: 한번 선언한 값은 바꿀 수 없다.)
function scope(){
	const a = 0;
	let b = 0;
	var c = 0;

	// {} 증괄호 안에 든 내용을 블럭이라고 표현해요.
	
	if(a === 0){
		const a = 1;
		let b = 1;
		var c = 1;
		console.log(a, b, c);
	}
	// 앗! c는 값이 변했죠? 
	// 그렇습니다. var는 함수 단위라서 if문 밖에서 선언한 값이 변했어요.
	// let과 const로 선언한 겂은 어떤가요? if문 안쪽 내용이 바깥 내용에 영향을 끼치지 않죠?
	console.log(a, b, c);
}

3. =과 ==과 ===이란?

3-1. =과 ==과 ===이란?

  • =?

    =은 할당을 뜻한다. 즉, 어떤 변수에 값을 할당할 때 사용한다.

  • ==?

    ==은 등차이다. 유형을 비교하지 않는 등자라고 생각하면 된다. 변수 값을 기반으로 비교한다.
    ex. 0 =="0"은 true를 반환한다.)

  • ===?

    ===도 등차이다. 유형도 비교하는 등차이고, 엄격한 위에 등차보다 더 엄격한 비교를 진행한다.
    ex. 0 ==="0"은 false를 반환한다.)

4. Spread 연산자(Spread 문법)

어떤 객체 안에 있는 요소들을 객체 바깥으로 꺼내주는 친구이다.

let array = [1,2,3,4,5];
// ... <- 이 점 3개를 스프레드 문법이라고 불러요.
// 배열 안에 있는 항목들(요소들)을 전부 꺼내준다는 뜻입니다.
// 즉 [...array]은 array에 있는 항목을 전부 꺼내 
// 새로운 배열([] => 이 껍데기가 새로운 배열을 뜻하죠!)에 넣어주겠단 말입니다!
let new_array = [...array];

console.log(new_array);

5. 조건부 삼항 연산자

삼항 연산자는 if문의 단축형태이다.
사용법: 조건 ? 참일 경우 : 거짓일 경우

let info = {name: "mean0", id: 0};

let is_me = info.name === "mean0"? true : false;

console.log(is_me);
profile
👍🏻 SeungMai (매 순간 기록을!)🧑🏻‍💻 | WIL만 올리고 있습니다 | 기술블로그는 아래 🏠 의 링크를 이용해주세요.

2개의 댓글

comment-user-thumbnail
2021년 7월 19일

올 ㅋ

1개의 답글