먼저, 자바란
우리가 배우는 것 - 프로그래밍 언어 ;소통을 위해서 필요. 사람과 컴퓨터 사이에 소통이 필요해짐. 0과 1밖에 인식을 못하는 컴퓨터에게 대화를 시도하는데, 그 방법이 프로그래밍 언어
프로그래밍 언어 종류 자바, c, 자바스크립트, 파이썬 등 ; 그 중에서 가장 많이 쓰임 ; 활용도 높음
자바스크립트는 왜 생겼나? - 브라우저 동작하기 위해서 ; 브라우저 (크롬, 파이어폭스, 사파리, 마이크로소프트 엣지 등) - 자바스크립트로 많은 동적을 만들 수 있는데 그것을 제어하기 위해
User eXperience : 사용자 경험 (ux) ; 유저들이 프로그램을 얼마나 편리하게 사용하는가(경험)을 말하는 것
node.js가 등장하면서 자바가 브라우저를 깨고 어디에서나 사용할 수 있도록 됨
기존) 브라우저를 동작하기 위한 자바스크립트에서 ⬆️ 이렇게 변경
node.js : 서버개발 활성화 / 프론트엔드 + 백엔드 + 디비 =를 모두 가능한 풀스택
자바스크립트(js) 특징
- 1.객체 지향 프로그래밍 지원 (순서대로가 아닌 어떠한 역할을 가지고 있는 객체라는 그룹으로 묶어 객체끼리 처리)
; 반대말 = 절차지향(첫번째 일 다음에 두번째 일 처리하는 등 순서대로 프로그래밍 하는 것)
객체지향인 이유 : 객체 단위로 묶어서 여러군데에서 재활용 가능
- 2.동적 타이핑 언어 : 다른 언어에서는 (변할수 있는 수 인) 변수 지정 시 타입을 함께 지정 ex) java에서는 string a = "abc";
js에서는 var a = "abc"; - 변수의 타입을 따로 지정 하지 않음 / 그렇다면 언제 타입이 지정되는가? 런타임 때
런타임이란? 런하는 타임 = 돌아가는 타임(코드가 다 짜여진 상태에서 프로그램이 돌아갈 때 타입이 결정됨)
- 3.함수형 프로그래밍 지원
- 4.비동기처리 가능
- 5.클라이언트 측 서버측 모두 사용가능
노드js + vscode 설치 후 ; 파일 -> 새 터미널 ->새파일 ex)01.js
console.log("Heloo world!"); 입력 후 터미널에서 node 01.js 하면 나옴 : 단 저장하고 터미널 진행할 것
; 테스트용
// 주석 : 이 부분은 (자바스크립트 구동하는 엔진이) 해석하지 않음
터미널에 clear 치면 깨끗해짐
변수 필요한 이유 : 모든 프로그래밍 언어는 기억하고 싶은 값을 메모리에 저장하고, 그 값을 읽어서 재사용한다.
변수의 5가지 주요개념 ex) var myvar = "hello world";
변수 이름 : 저장된 값과 고유 이름 myvar ; 예시, 한글도 가능
변수 값 : 변수에 저장된 값 (변수로 이름으로 만들어진 저장된 값) hello world
변수 할당 : 변수에 값을 저장하는 행위 - 만들어진 변수(myvar)에 값(hello world)을 저장하는 행위
변수 선언 : 변수를 사용하기 위해 컴퓨터에 알리는 행위 ; var 키워드를 이용해서 myvar 라는 변수를 만들어줘
즉, var myvar (<-여기부분이 변수선언)= "hello world";
변수 참조 : 변수의 할당된 값을 읽어 오는 것
- var myvar = "hello world";
ex1) console.log();로 출력해달라고 하거나 /
ex2) var a = 10;
var b = 20; 값 저장 후
var c = a + b; 에이와 비를 참조(할당된 값을 읽어왔)했다.
변수 선언 할 수 있는 3가지 방법 - var, let, const
ex1.) 변수에 콘솔을 넣었을 때 - 모두 반응이 같음
따로 쓸수도 있나? ㅇ
var myvar1;
myvar1 = 3; 은
var myvar = 3; 과 같은 수식
ex2.) 선언해 놓은 것을 다시 선언 했을 경우 - let 부터 이미 빨간줄이 생김을 볼 수 있음
mylet 이 이미 declared 되었다 라고 뜸 ; 위에 헬로우 월드 드래그 해서 보면 다시 선언할 수없다고 뜸 (let, const 재선언불가)
근데, var은 똑같은 이름으로 다시 선언이 가능함을 알 수 있음
ex3.) 변수 빼고 선언했을 때 - var , let 재 할당은 가능하나 const 는 한 번 할당하면 재할당은 안됨
constant variable 에 assignment가 발생했다 라고 오류가 뜸
; var let const
재선언 o x x
재할당 o o x