[10주차 03] 자바스크립트 기초

개발냥이·2025년 3월 26일

데브코스

목록 보기
32/75
post-thumbnail

인터프리터 언어

컴파일러 언어

  1. 코드를 기계어로 변환
  2. 기계어를 실행
fn main(){
  println("Hello world")
}
# 기계어로 변환 후 출력

인터프리터 언어 (기계어로 변환 x)

  1. 기계에서 실행
  2. 실행과 변환을 동시에 실행
console.log('Hello world');
// 바로 출력

=> 컴파일 단계가 없음
=> 컴파일러에 비해 실행 속도가 느림


JS 언어의 특징

  • 동적 타입 언어

    • 변수에 들어가는 값에 따라 런타임에 타입이 결정
  • 함수는 일급 객체

    • 함수는 객체와 동일하게 사용
  • 프로토타입 기반 상속

    • 프로토타입 체이닝 구조로 상속
  • 프로그래밍 패러다임 지원

    • 프로그래밍 패러다임 : 프로그래밍 기법이 어떻게 구조화되고 표현되는 지
    • 명령어 , 함수형 , 객제지향

JavaScript 표준화 - ES2015+

  • 브라우저 지원이 안될 경우
    • polyfill
      • 사용할수 있도록 다시 코드를 작성
    • babel
      • 이전 버전의 브라우저를 자바스크립트가 돌아가도록 버전 변경해주는 도구

변수

  1. 데이터를 처리하는 과정에서 값들을 기억할 필요가 있음
  2. 데이터를 기억하기 위해 메모리 사용
  3. 메모리
    • 각각 위치 주소값이 존재
    • 위치를 찾기 위해 메모리의 주소값 사용

변수 : 메모리 주소값을 쉽게 식별하기 위해 붙인 이름


변수 생성 단계

  1. 선언
  2. 초기화 : 변수를 메모리에 할당 + undefined로 초기화
  3. 할당 : undefined에 실제 값 할당 (이때 실제 실행됨)

자바스크립트 엔진은 코드 평가 -> 코드 실행(실행 컨텍스트)으로 이루어짐

var

코드 평가 : 선언 + 초기화
코드 실행 : 할당

함수 스코프

호이스팅 : 선언문이 스코프의 선두로 옮겨진 것처럼 동작하는 특성!!

즉 var은 선언과 초기화가 동시에 이루어지기 때문에 호이스팅 발생!!

// 호이스팅
// 오류는 나지 않고 실행됨
console.log(a); //undefined
var a = 1;
  • 단점
    • 키워드 생략 가능
    • 중복 선언 가능
    • 변수 호이스팅
    • 전역 변수화 (어디서나 참조가 가능해서 의도치 않은 코드가 실행됨)

const , let

코드 평가 : 선언
코드 실행 : 초기화 + 할당

블록 스코프

함수

특정 동작을 수행하는 처리기

  • 일급객체의 특성을 가지고 있음
  • 일급객체 : 적용 가능한 연산을 모두 지원하는 객체
profile
웹 개발자가 되고픈

0개의 댓글