WEB/node.js

생활코딩 node.js_ 7강부터 9강까지

l._.been 2020. 9. 4. 00:36
728x90

# JavaScipt 문법 - 변수의 형식

 👏 Variable(변수) 

python, C언어와 마찬가지로 변수의 정의는 같았다.

node.js에서 변수를 만들때 좋은 습관은 var을 앞에 붙여서 유효범위를 나타내주는 것이다.

var a = 1; 에서 새롭게 a = 2;로 바꿔쓸 때, var을 다시 쓰지 않아도 된다.

(변수를 처음 선언할 때 var을 굳이 안써도 되지만 쓰지 않는 이유를 모른다면 항상 붙여쓴다고 생각하면 좋다. )

 

🙋‍♀️더 알아보기 - var, let, const의 차이

var function-scoped으로 hosting이 되고 let, const block-scoped단위로 hosting된다.

✔ function-scoped : 함수범위 내에서 사용할 수 있다는 의미인데 이중 박복문에서 사용된다면 에러를 나타내기 쉽다.

var의 단점 :  1. 이미 만들어진 변수 이름에 재선언했을 때 아무런 문제가 발생하지 않는다.

                             2. 변수 선언보다 값의 할당을 먼저해도 에러가 나지 않는다

 => var의 한계를 보완한 let과 const가 등장하게된다.  

✔ let, const : var과 다르게 변수 재선언이 불가능하다.

✔ let과 const의 차이 :  변수의 immutable 여부이다.

    1. let은 변수에 재선언이 가능하지만, const는 변수 재선언, 재할당 모두 불가능하다. 

    2. let은 선언하고 나중에 값을 할당할 수 있지만 const는 선언과 동시에 값을 할당해야한다.

✔ 참고문서 :

gist.github.com/LeoHeo/7c2a2a6dbcf80becaaa1e61e90091e5d

velog.io/@bathingape/JavaScript-var-let-const-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

 

# JavaScript 문법 - 변수의 활용

< 변수의 의미 >

"어떤 데이터를 갖고있는지 한 번에 알아볼 수 있게 만들어준다."

"데이터에 이름을 붙여준다."..

과장해서 저런 글이 1억줄이 있다고 하자 중복되는 글씨들을 수정해야하는 상황이 생겼을 때 우리는 난감할 것이다

이런 글을 일괄적으로 바꾸기에는 너무나도 많은 시간이 필요할 것이기 때문이다.

이럴 때 변수를 사용하면 더 가독성있고 효율적인 코드를 완성할 수 있다.

(중복을 피하면 코드는 더 우아해진다.)

이런 효과는 반복문, 조건문, 함수, 객체, 메소드 등에서 계속해서 끊임없이 나타나는 태크닉이다.

 

# JavaScipt 문법 - Template Literal

문자를 표현하는 편리한 방법!!

 

Template Literal에서 Literal이란 정보를 표현하는 방법 또는 정보를 표현하는 기록이다.

Template Literal의 시작과 끝을 나타내는 기호는 ` 이다. 

 

 

위의 코드와 아래 코드의 출력은 동일하게 나온다. 그렇다면 두 코드의 차이점은 무엇인가?

이미 코드 하단 부분의 주석에 다 설명이 되어있다 ㅎㅎ

간결하게 다시 말하자면 더 가독성이 좋은 코드가 되었다는 거다. 

( ${ 1+1 }이 실행되는 것을 보고 너무 놀랐다;; ) 

 

👀 URL의 이해

 " http:// opentutorials.org:3000/main?id=HTML&page=12 "

http => protocol : 웹브라우저와 웹서버가 데이터를 주고받기위한 통신규칙

opentutorials.org => host(domain) : 인터넷에 접속되어있는 각각의 컴퓨터를 가리키는 주소

3000 =>port : 클라이언트가 접속했을 때 여러대의 서버 중 3000번 포트에 연결되어있는 서버에 통신

main => path : 컴퓨터 안에 있는 어떤 디렉토리의 어떤 파일인지를 가리킴

id=HTML&page=12 => query string : '내가 읽고 싶은 정보는 HTML이고 12페이지다'라는 것을 나타내고 있다. 

 

🤷‍♂️ query string에 주목하자

- queary string의 시작은 '?'로 시작하기로 약속되어 있다.

- 값과 값은 '&'를 쓰기로 약속되어 있다.

- 값의 이름과 값은 '='로 구분하도록 약속되어있다.

 

🙋‍♀️ 더 알아보기 - 정적언어(타입) 동적언어(타입)

✔ 타입 : 한글로 자료형이다. int형, short형, float형, bool형, 객체 등이 있다. 

✔ 정적언어 : 타입(자료형)을 컴파일 시에 결정하는 것이다. 대표적으로 C, C#,C++,Java등의 언어가 있다.

이들 언어는 변수에 들어갈 값의 형태에 따라 자료형을 지정해주어야 한다.

컴파일 시에 자료형에 맞지 않는 값이 들어있으면 컴파일 에러가 발생한다.

- 장점 : 컴파일 시에 타입에 대한 정보를 결정하기 때문에 속도가 빠르고

타입 에러로 인한 문제점을 초기에 발견할 수 있어서 타입의 안정성이 높다. 

✔ 동적언어 : 타입(자료형)을 컴파일 시 정하는 것이 아니고 실행 시에 결정한다. 

대표적으로 JavaScript, Ruby, Python, SmallTalk 등이 있다.  타입없이 변수만 선언하여 값을 지정할 수 있다.

- 장점 : Run time까지 타입에 대한 결정을 끌고 갈 수 있기 때문에 많은 선택의 여지가 있다.

- 단점 : 인터프리터 언어는 배우기는 쉬우나 실행 도중에 변수에 예상치 못한 타입이 들어와 Type Error가 날 수 있다.