⌨️/JavaScript

[JavaScript] 변수의 주요 개념과 선언 방법

S0 2023. 12. 29. 20:24

내일배움캠프: Node.js_4기

6일차 TIL

~오늘의 수강 과목~

1. JavaScript 문법 종합반 1주차 (최원장 튜터님)

_ 자바스크립트의 역사, 특징

_ 변수의 주요 개념, 선언 방법(var, let, const)


자바스크립트의 역사
(개인적으로 흥미를 가지고 이해한 부분만 간단하게 정리)

자바스크립트는 브라우저를 동작시키기 위한 스크립트 언어

1995년에 '라이브 스크립트'라는 이름으로 만들어졌다가 최종적으로는 '자바스크립트'가 되었다.

(Java와는 관계 x)

2005년 Ajax라는 자바스크립트 기반 기술이 나오며 본격적으로 자바스크립트가 사용화되기 시작했다.

이전에는 웹페이지 전체를 새로고침하는 방법밖에 없었지만, 에이잭스를 통해 버튼으로 부분부분 새로고침이 가능하게 되어 UX가 향상되었다.

2009년 Node.js가 등장

기존의 자바스크립트는 브라우저에서만 사용 가능한 언어였지만, 노드제이에스를 통해 어디에서나(=프론트엔드+백엔드+DB) 사용이 가능하게 되어 서버 개발이 활성화되었다.

 

자바스크립트의 특징

1. 객체 지향 언어

객체지향 <-> 절차지향

절차지향: 첫번째 일을 처리한 다음 두번째 일을 순서대로 처리(=차례대로 해석)

객체지향: 어떠한 역할을 가지고 있는 '객체'라는 그룹으로 묶어 그룹 단위로 프로그램 수행

이렇게 객체로 묶은 그룹은 여러 부분에서 코드 재활용이 가능

현대의 웹사이트는 복잡한 기능을 요구하는 경우가 많기 때문에 이 객체 지향 프로그래밍이 필수

 

2. 동적 타이핑 언어

대부분의 타 언어는 변수 지정 시 앞에서 타입을 작성하지만(자바 예시_string a = 'abc';), 자바스크립트는 타입을 따로 지정하지 않음(자바스크립트 예시_const a = 'abc';)

자바스크립트에서는 변수의 타입이 런타임시 지정된다.

풀어서 설명하면 변수의 타입이 코드 작성 시에 정해지는 것이 아니고, 코드가 돌아가면서 실행될 때 변수에 할당하는 값에 따라 지정된다.

 

3. 함수형 프로그래밍 지원

함수를 통해 코드 재사용성과 가독성을 높임

 

4. 비동기 처리

해당 파트는 초보가 이해하기에는 복잡한 이야기라 추후 다시 설명해준다고 하셨다.

 

5. 클라이언트 측 및 서버 측 모두 사용 가능

Node.js의 등장으로 서버 측에서도 사용이 가능하게 되었다.

(상단 자바스크립트의 역사에 기재)

 


변수의 다섯가지 개념

예시 코드 : const myConst = 1 + 2; 

  • 이름: 변수에 저장된 값의 고유 이름 = myConst
  • 값: 변수에 저장된 값 = 1+2;
  • 할당: 변수에 값을 저장하는 행위 = =
  • 선언: 변수를 사용하기 위해 컴퓨터에 알리는 행위 = var, let, const
  • 참조: 변수에 할당된 값을 읽어오는 것 = 예시 코드의 변수에서 값이 3이라는 것을 읽어오는 행위를 '변수를 참조했다'라고 함

 

변수 선언 방법

// var로 변수 덮어쓰기
var myVar = "Hello";
var myVar = "World";
console.log(myVar); // "World"

// let으로 변수 덮어쓰기 _1번
let myLet = "Hello";
let myLet = "World"; // 오류 발생
console.log(myLet);

// let으로 변수 덮어쓰기 _2번
let myLet = "Hello";
myLet = "World"; // 기존 값을 덮어쓰기
console.log(myLet); // "World"

// const로 상수 선언 후 값 변경하기
const myConst = "Hello";
myConst = "World"; // 오류 발생
console.log(myConst);

var, let, const의 차이는 이론보다는 예제 코드부터 보는 것이 이해가 빨랐다.

 


오늘의 메모

  • 어려운 내용은 분명 아니었지만! 담긴 내용의 양 자체가 너무 많아서 사람이 약간 고장난 하루였다. 복습을 다른 때보다 더 신경써서 차분하게 해봐야겠다
  • 연휴동안 매일 강의를 들어놔야 그나마 마음 편히 개인 과제 준비가 가능할 것 같다
  • Node.js를 설치했다

 

내일의 목표

  1. 오늘 공부한 분량까지의 TIL 2차 정리
  2. JavaScript 문법 종합반 1주차 끝내기
  3. 1주차 내용에서 개인과제에 필요한 부분 뽑아내보기

(오늘 못한만큼 주말에 채워놓고 여유분까지 준비한다는 느낌으로 공부)

 

앞으로의 목표

  1. ....(당장 눈앞에 있는 것이 너무 급함 그치만 거창할 것 없이 내일의 목표가 모여서 궁극적으로는 앞으로의 목표가 된다고 생각하기 때문에 일단 그냥 하기🤨)
  2. 노션 페이지에 계획 작성할 때 하루를 통으로 생각해서 나누지 말고 오전이랑 오후루틴을  분리해서 계획을 세워보기