일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 호이스팅
- async/await
- 노드
- javascript
- 트랜잭션
- manytomanyfield
- 스코프
- 프로미스
- django westagram
- rebase
- node
- wecode
- OSI7계층
- pm2
- westagram
- crud2
- 자바스크립트
- CORS
- docker
- Django
- nodeJS
- 장고초기세팅
- TypeError: this.boardRepository.createBoard is not a function
- Jest
- status code
- 실행 컨텍스트
- on_delete
- JWT
- typescript
- bcrypt
- Today
- Total
될때까지
((TIL)) 프리온보딩 백엔드 사전스터디 : Javascript 2 본문
intro
항상 느끼지만.. 기본문법은 참 재미없다
사실인걸....
💡 날짜
new Date()를 호출하면 새로운 Date 객체가 생성된다.
인수없이 호출하면 현재 날짜와 시간이 저장된 Date 객체가 반환된다.
const rightNow = new Date();
console.log(rightNow); // 2022-09-19T09:00:50.835Z
// 아래와 같이 날짜,시간,월의 값을 가져올 수 있다.
const rightNow = new Date();
const year = rightNow.getFullYear();
const month = rightNow.getMonth() + 1;
const date = rightNow.getDate();
const day = rightNow.getDay();
const currentHour = rightNow.getHours();
const currentMin = rightNow.getMinutes();
getMonth()메소드는 현재 달보다 1 작은 값을 반환한다.(왜???)
rightNow에 담긴 시간값이 실시간을 변하는 건 아니고, 선언한 순간의 시간이 저장된다는 점 주의.
getTime() : 1970년 1월 1일을 기준으로 현재까지 몇 ms(밀리초) 지났는 지 의미한다.
10분뒤에 새로 new Date()를 호출했다면, 더 큰 getTime()이 나오니까 이를 이용해 로직에 녹여낼 수 있다.
💡 Number
01. round, ceil, floor
- Math.round() : 반올림 메소드
- Math.ceil() : 올림 메소드
- Math.floor() : 내림 메소드
02. 랜덤함수
- Math.random() : 0.0000000000000000 ~ 0.9999999999999999 사이에서 랜덤수를 제공
💡Scope
변수가 어디까지 쓰일 수 있는지의 범위를 의미한다.
중괄호 {} 로 감싸진 것을 block이라고 하며, fuction 내부 / for문 내부 / if문 내부도 하나의 block이다.
local scope(지역변수)
block {} 내부에서 정의된 변수는 오로지 block내부에서만 사용할 수 있다.
function getResult() {
let result = 10;
return result;
}
// 자바스크립트 에러!
// getResult 내부의 scope에 접근할 수 없다
console.log(result); // => 오류발생
global scope(전역변수)
block 외부인 global scope에서 만든 변수는 코드 어디서든 접근이 가능하다.
const color = 'red';
console.log(color);
function returnColor() {
console.log(color);
return color;
}
console.log(returnColor());
scope의 오염
global변수를 선언하면 해당 프로그램 어디에서나 사용할 수 있는 global namespace를 갖는다.
namespace는 변수이름을 사용할 수 있는 범위라는 뜻으로, 변수 이름을 이야기할때 namespace라고 한다.
global변수는 프로그램이 종료될때까지 계속 살아있다.
전역변수를 불러다 값을 수정하고,또 호출하는 행위는 변수를 트래킹하기 어렵고 어디서 왜 필요한지 찾아내기 어려워진다.
좋은 scoping 습관
global변수는 꼭 필요할때만 사용하도록 하며, 최대만 블록 범위 내에서 let, const를 사용해 변수를 만들어 사용하자.
💡 Class
객체지향 프로그래밍의 핵심 개념이다.
객체지향 프로그래밍이란 프로그램을 객체로 구성하고 객체들 간에 서로 상호작용하도록 프로그래밍하는 방법론이다.
자바스크립트는 객체지향 중심에 있는 언어는 아니지만, 객체지향을 반영한 코드를 작성할 수 있다.
객체는 특정 로직을 갖고 있는 메소드와 변경 가능한 상태를 지닌다. 원하는 구조의 객체를 생성하는 틀을 만들어놓고, 이것을 통해 비슷한 모양의 객체를 공장처럼 찍어낼 수 있다.
멤버변수
클래스 내에서 변경가능한 상태값이자, 클래스내의 컨텍스트(실행범위)에서 어느 곳에서나 사용할 수 있는 변수를 멤버 변수라고 부른다.
멤버 변수는 this키워드로 접근한다.
instance
인스턴스는 클래스를 통해 생성된 객체이다.
인스턴스는 클래스의 프로퍼티 이름과 메소드를 갖는 객체다.
인스턴스는 클래스 이름에 new를 붙여서 생성하고, 괄호 내부에는 생성자(constructor)에서 필요한 정보를 인자로 넘겨준다.
const cocar = new Car('Cocar', 2000);
methods
메소드는 객체가 프로퍼티 값으로 갖고 있는 함수다.
💡 Object
{ } 로 직접 객체를 생성하는 방식을 object literal(객체 리터럴)이라고 부른다.
객체는 순서가 없는 데이터이 모음이지만, 배열은 순서를 가지는 데이터의 모음이다.
객체는 key(property name), value(property value) 쌍으로 된 데이터의 모음이다.
참조형 데이터
객체를 변수에 저장되면, reference가 저장된다.
객체는 변수에 저장할 때, 객체 자체를 그대로 저장하는 것이 아니라 객체가 담긴 어느 메모리의 reference를 저장하기 때문이다.
const로 선언한 객체에 새로운 값을 할당하려고 하면 에러가 난다.
하지만 프로퍼티에 접근해서 (.name) 수정하면 가능하다.
💡 ES6 = ECMA Script 2015
자바스크립트를 표준화시키고, 규격화하기 위해 만들어졌다.
'프로젝트 > 프리온보딩' 카테고리의 다른 글
((TIL)) 프리온보딩 백엔드 사전스터디 : Node.js 4 (0) | 2022.09.26 |
---|---|
((TIL)) 프리온보딩 백엔드 사전스터디 : Node.js 3 (0) | 2022.09.25 |
((TIL)) 프리온보딩 백엔드 사전스터디 : Node.js 2 (1) | 2022.09.21 |
((TIL)) 프리온보딩 백엔드 사전스터디 : Node.js 1 (1) | 2022.09.20 |
((TIL)) 프리온보딩 백엔드 사전스터디 : Javascript 1 (0) | 2022.09.18 |