Node.js 실무 기초 1주차
편집기 : VS Code, cmd
Node.js란?
자바스크립트가 실행될 수 있게 도와주는 런타임 플랫폼
V8 엔진으로 빌드된 자바스크립트 런타임 플랫폼(마법 상자)
한국어 : 자바스크립트
한국말 : node.js(소리라는 수단으로 나의 의견 & 생각을 전달할 수 있다. 실행시키는 수단)
📌 npm이란?
자바스크립트를 사용할 수 있는 패키지(모듈) 관리자
ex) pip와 동일한 역할을 함.
npm install express
📌 REPL이란?
Read, Evaluate, Print, Loop
입력받은 코드를 읽어 메모리에 저장하고 평가된 값을 출력한다.
특정 신호를 입력 받기 전까지 위의 과정을 반복한다.
즉, 코드의 결과값을 즉시 확인 할 수 있는 간단한 문법 테스트
JS 기본문법1
📌 변수
const 는 값 변경 불가능
let은 값 변경 가능
선언하지 않은 변수 입력시, Reference Error 발생
📌 구문설탕
age = age + 1
age += 1
📌 비교연산자(True, False)
=== 같다.(type과 value가 모두 같다)
!== 다르다.
> 크다
< 작다
>= 이상
<= 이하
📌 자료형
- 객체
> const person = {}
undefined
> person
{}
> person.name = '승현'
'승현'
> person
{ name: '승현' }
> person.name = '학생이름'
'학생이름'
> person
{ name: '학생이름' }
> paerson = {name : 'test'}
{ name: 'test' }
> person
{ name: '학생이름' }
> person['age'] = 20
20
> person
{ name: '학생이름', age: 20 }
상자에 넣은 name값 변경은 불가능. 왜? const로 선언했기 때문에.
- 함수
> function getMyName() { return '승현'}
undefined
>
>
> getMyName
[Function: getMyName]
> getMyName()
'승현'
- 조건문
> if('test' === 'test') {console.log(1+1)}
2
quiz
> let foo
undefined
> foo
undefined
> bar
Uncaught ReferenceError: bar is not defined
검색꿀팁
javascript array filter
JS 기본문법2
📌 논리 연산자
- && : AND연산자
- || : OR연산자
- ! : NOT연산자
📌 기본값을 넣을 때 || 사용
> function getMyName(name) {return name || '이름 왜 안입력해'}
undefined
> getMyName('test')
'test'
> getMyName('강승현')
'강승현'
> getMyName()
'이름 왜 안입력해'
📌 반복문
> for(let i=1; i<=9; i++) console.log(i)
1
2
3
4
5
6
7
8
9
📌 배열 & 반복문
> const persons = ['강승현', '홍길동', '김아무개'];
undefined
> persons
[ '강승현', '홍길동', '김아무개' ]
> for (let i=0; i < persons.length; i++) console.log(persons[i])
강승현
홍길동
김아무개
> for (const person of persons) { console.log(person); }
강승현
홍길동
김아무개
> for (const person in persons) { console.log(person); }
0
1
2
📌 화살표 함수
> const sum = (a, b) => a+b
undefined
> sum(1,10)
11
📌 익명함수
> const fn = function() { return '임명함수의 결과 값이다' }
undefined
> fn()
'임명함수의 결과 값이다'
quiz
> function noReturn(arg1, arg2){
... const result = arg1 + arg2;
... }
undefined
> noReturn
[Function: noReturn]
> noReturn(1,2)
undefined
return이 없어 return되는게 없음.
JS 기본문법3
📌 에디터 사용법
- ctrl + d : 실행
- crrl + c : 취소
📌 hoisting
> .editor
// Entering editor mode (Ctrl+D to finish, Ctrl+C to cancel)
console.log(name);
var name = ' 뭘까요?';
undefined
undefined
📌 var
변수의 값이 언제 바뀔지도 모르며 스파게티 코드를 만드는 주범이 될 수 있음.
따라서 사용을 지양해야 함.
📌 동기(Sync)
먼저 실행된 코드의 결과가 나올때까지 대기하는 것
놀이기구 탑승/하차 생각하면 쉬움. 놀이기구에 탑승했던 사람들이 다 내리기 전까지는 탑승을 할 수 없다.
📌 비동기(Async)
실행된 순서와 관계없이 결과가 나오는 것.
식당 입장/퇴장을 생각하면 쉬움. 사람마다 먹는 시간이 다르기 때문에 먼저 다 먹은 사람은 바로 나올 수 있다.
자바스트립트는 Async + Non-blocking Model
📌 동기, promise
> .editor
// Entering editor mode (Ctrl+D to finish, Ctrl+C to cancel)
const result = new Promise((resolve, reject) => {
setTimeout(() => resolve(), 1000);
});
result.then(() => {
console.log('1초가 지났다.'); });
Promise {
<pending>,
[Symbol(async_id_symbol)]: 2155,
[Symbol(trigger_async_id_symbol)]: 2153
}
> 1초가 지났다.
1초 뒤에 resolve 수행된다.
📌 비동기
> async function getMyName(text) { return text }
undefined
>
> getMyName('강승현');
Promise {
'강승현',
[Symbol(async_id_symbol)]: 2435,
[Symbol(trigger_async_id_symbol)]: 5
}
> getMyName('강승현').then(console.log)
Promise {
<pending>,
[Symbol(async_id_symbol)]: 2521,
[Symbol(trigger_async_id_symbol)]: 2520
}
> 강승현
> getMyName('TEST').then(console.log);
Promise {
<pending>,
[Symbol(async_id_symbol)]: 2793,
[Symbol(trigger_async_id_symbol)]: 2792
}
> TEST
quiz
만나이 구하기
bt = new Date('1990-01-01 16:27:00')
Mon Jan 01 1990 16:27:00 GMT+0900 (한국 표준시)
bt.getDate();
1
bt.getFullYear();
1990
new Date().getFullYear() - bt.getFullYear()
32
'JavaScript' 카테고리의 다른 글
Node.js 입문 주차 1주차_2 (0) | 2022.12.13 |
---|---|
Node.js 입문 주차 1주차 (0) | 2022.12.12 |
자바스크립트 문법 뽀개기2 (0) | 2022.11.22 |
자바스크립트 문법 뽀개기1 (0) | 2022.11.22 |
자바스크립트 리액트 라이브러리 맛보기 (0) | 2022.11.10 |