본문 바로가기
내일배움캠프/Today I Learned

[TIL 2023.05.22] JavaScript 특징과 기본 문법

by 괴코딩 2023. 5. 23.

💻오늘 배운 내용

자바스크립트 특징 및 기본 문법


JavaScript

JS 언어의 특징

 

  • [1] 객체 지향 프로그래밍 지원
  • 자바스크립트는 객체 지향 프로그래밍이 가능한 언어로서, 객체를 생성하고 관리하는 데에 강점이 있다. 이를 통해 복잡한 기능을 구현할 수 있다.
  • [2] 동적 타이핑
  • 런타임 시점에 변수에 할당되는 값에 따라 자동으로 데이터 타입이 결정된다.
  • [3] 함수형 프로그래밍 지원
  • 자바스크립트는 함수형 프로그래밍을 지원하는 언어로서, 함수를 일급 객체로 취급하고, 고차 함수를 지원한다. 이를 통해 코드의 재사용성과 가독성을 높일 수 있다.
  • [4] 비동기 처리
  • 작업을 순차적으로 기다리지 않고, 병렬로 처리할 수 있도록 하는 방식.
  • [5] 클라이언트 측 및 서버 측 모두에서 사용 가능
  • 클라이언트 측에서만 사용되는 것이 아니라, Node.js를 이용하여 서버 측에서도 사용된다. 이를 통해 웹 개발 전반에 걸쳐 자바스크립트를 활용할 수 있다.

 

기본문법

  • [1] 변수와 상수<aside>
    • 💡 변수의 5가지 주요 개념
    • 변수 값 : 변수에 저장된 값
    • 변수 선언 : 변수를 사용하기 위해 컴퓨터에 알리는 행위</aside>
    • 변수 참조 : 변수에 할당된 값을 읽어오는것
    • 변수 할당 : 변수에 값을 저장하는 행위
    • 변수 이름 : 저장된 값의 고유 이름
    • 변수는 var, let, const 세 가지 방법으로 선언
  • [2] 데이터 타입과 형 변환
    • 데이터 타입
      • 숫자 : 정수 / 실수 / 지수 / NaN / infinity / (-)infinity
      • 문자열 : length / concatenation / substr, slice / search / replace / split
      • 불리언(Boolean)
      • undefined
      • null
      • 객체(object)
      • 배열(array)
    • 형 변환
      • 암시적 형 변환 : 문자열 변환 / 숫자 변환
      • 명시적 형 변환 : 불리언 변환 / 문자열 변환 / 숫자 변환
  • [3] 연산자
    • 산술 연산자
      • 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지(%)
    • 할당 연산자
      • 등호(=), 더하기등호(+=), 빼기 등호(-=)
    • 비교 연산자
      • 일치 연산자(===), 불일치 연산자(!==), 작다 연산자(<), 작거나 같다 연산자(<=)
    • 논리 연산자
      • 논리곱 연산자(&&), 논리합 연산자(||), 논리부정 연산자(!), 🌟삼항 연산자(?:), 타입 연산자(typeof)
  • [4] 함수
    • 함수 선언문 function () {} -함수를 미리 정의, 필요할때 호출
    • 함수 할당문 let a = function () {} -익명의 함수 생성가능

 

🧐궁금점과 부족한 내용

  • 프레임워크 vs 라이브러리 차이점
  • nodemon의 사용

프레임워크와 라이브러리의 차이

 

Framework(프레임워크)

프레임워크는 뼈대나 기반구조를 뜻하고, 제어의 역전 개념이 적용된 대표적인 기술이다

  • 프레임워크의 특징
    • 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성
    • 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의
    • 컴포넌트들은 재사용이 가능
    • 높은 수준에서 패턴들을 조작화

 

라이브러리(Library)

라이브러리는 단순 활용가능한 도구들의 집합을 말한다.

 

프레임워크와 라이브러리의 차이점

라이브러리와 프레임워크의 차이는 제어 흐름에 대한 주도성누구에게/어디에 있는가

즉, 어플리케이션의 Flow(흐름)를 누가 쥐고 있느냐에 달려 있다.

  • 프레임워크 : 전체적인 흐름을 스스로가 쥐고 있으며 사용자는 그 안에서 필요한 코드를 짜 넣음
    • 그 틀안에 이미 제어 흐름에 대한 주도성이 내재(내포)
    • 가져다가 사용한다기보다는 거기에 들어가서 사용한다는 느낌/관점으로 접근
  • 라이브러리 : 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것
  • 라이브러리를 가져다가 사용 → 호출하는 측에 전적으로 주도성

 

📋레퍼런스

https://webclub.tistory.com/458 프레임워크와 라이브러리의 차이

https://velog.io/@mainfn/Node.js-nodemon-사용법 nodemon 사용

 

반응형