[TIL] 데브코스 Day-1

jeong_wuk927·2023년 6월 5일
0

JavaScript 역사




자바스크립트는 1995년 브렌던 아이크님에 의해 개발됨.

자바스크립트는 본래 모카(Mocha)라는 이름으로, 나중에는 라이브스크립트(LiveScript)라는 이름으로 개발되었는데 당시 가장 유명했던 자바(JAVA)의 인기에 숟가락을 얹기위해 최종적으로 자바스크립트가 되었다. 이는 오늘날 성공적인 마케팅으로 평가 받곤 한다.

브라우저 동작 원리


  • 통신
    브라우저와 서버가 통신을 한다.



  • 렌더링
    브라우저는 통신으로 받아온 여러 데이터들을 렌더링한다.



  • 스크립트 실행

    말 그대로 브라우저는 자바스크립트 파일을 실행 한다.

변수, 상수, 자료형 그리고 메모리

변수

변수는 var, let 로 선언, 할당한다. (자바스크립트의 특이한 동작인 호이스팅 때문에 var는 권장하지 않는다.)

상수

상수는 const 로 선언, 할당한다.

호이스팅???

자바스크립트의 특이한 동작으로 코드가 한 줄씩 해석되는 과정에서 변수의 선언부를 스코프(유효범위) 최상단으로 끌어 올리는 현상이다.

자료형

  • Number - 숫자를 의미. (NaN, Infinity 도 포함됨)
  • String - 문자열을 의미.
  • Boolean - true/false
  • Object - 여러 자료형의 값을 key-value로 지닐 수 있는 자료형. (key는 무조건 문자열)
  • Array - 여러 자료형의 값을 지닐 수 있는 자료형. (Object와 다르게 key 대신 index 를 지님)
  • Function - 함수를 의미.
  • Undefined - 변수 혹은 상수가 선언되었지만 아무런 값이 대입되지 않은 경우.
  • Null - 변수 혹은 상수가 선언되고 Null 값이 대입된 경우.

메모리

자바스크립트는 자동 메모리 관리 알고리즘에 의해 Garbage Collector가 메모리를 해제하기 때문에 C++ 같이 개발자가 메모리를 직접 관리해야하는 언어에 비해 사용이 편리하다.

Mark and Sweep Algorithm

현대적인 브라우저가 사용하는 메모리 관리 알고리즘으로 닿을 수 없는 주소를 더 이상 필요없는 주소로 정의하고 지운다.

흐름제어

Control Flow

일반적으로 알고 있는 조건문(if / then / else / switch / case), 반복문(for / while)이 해당된다.

Data Flow

함수형 프로그래밍 방법으로 구현이 가능하다.

배열(Array)

여러 자료형의 값을 지닐 수 있는 자료형. (Object와 다르게 key 대신 index 를 지님)

자세한 배열 조작 방법은
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array

객체(Object)

여러 자료형의 값을 key-value로 지닐 수 있는 자료형. (key는 무조건 문자열)

자세한 객체 조작 방법은
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object

클로저

함수가 선언된 환경의 스코프를 기억하여 함수가 스코프 밖에서 실행될 때에도 기억한 스코프에 접근할 수 있게 만드는 문법이다.

function outer(){
  const name = 'kyle';
  
  console.log(name);
  
  return function inner(){
    const greeting = 'hello! '
    console.log(greeting,name)
  }
}

const getKyle = outer(); //kyle 

getKyle(); //hello! kyle
  • 은닉화 - 클로저를 이용하여 내부 변수와 함수를 숨길 수 있다.
profile
음악하는 개발자

0개의 댓글