JavaScript 기초 2

송범·2024년 11월 26일

컴퓨터 구성요소

  • 컴퓨터 = 하드디스크(저장소) + 연산 + 메모리

  • 메모리 : 1byte가 여러개 쌓여있는 구조

  • APP = Code + Data + Stack + Heap

    • 함수의 실행순서를 보관하는 곳이 Stack이다.
    • Heap에는 객체가 보관된다.

변수 선언 및 할당

  • 사용자에게 입력을 받아서 처리한다.

  • 처리한 것을 출력해 준다.

  • 입력이 완료되면 처리한다.

  • 입력 -> 처리 -> 출력

  • 변수 : 값을 저장하는 공간 , 자료를 저장할 수 있는 이름이 주어진 기억 장소
    자바스크립트에서의 변수선언 - 타입이 없다?? 타입이 언제 결정될까? -> 런타임시 문자열이었다가 숫자일 수 있다.

약형 언어 : 자바스크립트는 타입이 런타임시에 결정된다.
강형 언어 : 자바는 타입이 체크된다 -> 컴파일 타임에

ECMAScript5 : var사용함 -> 호이스팅 이슈가 있다. -> 문제점 제시
ECMAScript6 : let - 변하는 값 / const -> 고정 / let과 const는 호이스팅 이슈를 해결하였다.
for문일 때는 let 사용 상수일 때는 const를 사용한다.

자바스크립트에서 falsy한 값과 Truthy한 값

  • null
  • undefined
  • "" (빈문자열)
  • 0
  • false
  • NaN
  • -0
  • 0n
  • 위에 7개 말고 그 외의 값들은 Truthy한 값들이다.

let num // 변수선언 - 타입이 없다?? 타입이 언제 결정될까? -> 런타임시 문자열이었다가 숫자일 수 있다.

const a = 123

console.log(typeof(a)); //타입 확인 number

const b = "안녕하세요"

console.log(typeof(b));


console.log(typeof undefined == "undefined");

console.log(typeof [] =='object');
console.log(typeof {} =='object');
console.log(typeof function(){} =='object');
console.log(typeof function(){} =='function');

console.log([].constructor === Array);
console.log({}.constructor === Object);

자바스크립트는 어떻게 실행되지? -> JavaScript 실행 메커니즘

JavaScript 엔진

  • JavaScript 코드는 JavaScript 엔진을 통해 실행됩니다.
  • 각 브라우저는 고유의 JavaScript 엔진을 가지고 있습니다.
    - Chrome: V8 엔진
    - Firefox: SpiderMonkey
  • 엔진의 주된 역할은 코드를 구문 분석하고 실행하는 것입니다.

실행 환경

  • JavaScript는 브라우저에서 가장 일반적으로 실행되지만, 다른 환경에서도 실행될 수 있습니다.
  • 실행 환경에는 내장 도구가 포함되어 있어 코드를 컴파일, 최적화 및 실행합니다.
  • 모든 작업은 주로 단일 스레드에서 이루어집니다. (동기적 처리와 비동기적 처리)

JavaScript의 특성

동적 약형 언어

  • JavaScript는 동적 해석형 언어로, 코드는 런타임에 평가되고 실행됩니다.
  • 변수에 다양한 타입의 데이터를 저장할 수 있으며, 데이터 타입은 런타임에 결정됩니다.
  • 타입의 안정성보다는 편의성을 중시하고 있다.

호스팅된 환경에서의 JavaScript

브라우저에서의 JavaScript
호이스팅은 변수, 함수 선언이 해당 스코프의 최상단으로 끌어올려지는 것처럼 동작하는 것
메모리 공간을 먼저 할당하기 때문에 발생하는 현상이다.

  • 브라우저는 JavaScript 엔진을 내장하고 있어, 웹 페이지를 동적으로 만들고 사용자와 상호작용할 수 있습니다.
  • JavaScript는 HTTP 요청을 백그라운드에서 보낼 수 있으며, 페이지를 새로고침하지 않고도 동적으로 내용을 변경할 수 있습니다.
  • 보안상의 이유로 브라우저는 일반적으로 로컬 파일 시스템에 대한 접근을 제한합니다.

Node.js

  • Node.js는 V8 엔진을 기반으로 하여 서버 측에서 JavaScript를 실행할 수 있게 합니다.
  • Node.js를 사용하면 파일 시스템에 접근하고, 서버를 구축하며, 백엔드 로직을 처리할 수 있습니다.
  • Node.js는 직접 실행되므로, 웹페이지가 아닌 서버나 로컬 환경에서 실행됩니다.

요약

JavaScript는 다양한 환경에서 실행할 수 있는 유연한 언어입니다. 브라우저에서는 웹 페이지와 상호작용하며, Node.js와 같은 플랫폼을 통해 서버 측에서도 강력한 기능을 제공합니다. 이러한 환경들은 JavaScript가 단순한 스크립팅 언어를 넘어서, 포괄적인 프로그래밍 요구를 충족시키게 해줍니다.

profile
BackEnd&Data Scientist가 되고 싶은 개발 기록 노트

0개의 댓글