웹 개발/🌐 JavaScript

es6+ | 자바스크립트의 한계와 Null

2023. 5. 29. 18:48
목차
  1. ?연산자
  2. ?? 연산자
  3. 자바스크립트 한계

만약 객체에 없는 값을 찍으면 undefined가 뜬다

const ob = {
    name: 'jae',
    age: 25,
    uni: 'harvard',
    major: 'sw'
}
console.log(ob.country);

?연산자

지금은 콘솔환경이라 undefined 나 나타나지만 나중에 서버환경에서는 errorr가 발생할수있다

만약 어떤 객체에 존재하지 않는 속성에 접근하려고 하면 error가 나타날수 있다

그래서 있는지 없는지 확실치 않을때 ? 를 붙이면 error 대신 undefined를 return 해준다

console.log(ob?.country?.hi.hello.how.are.you);

?? 연산자

console.log(ob.country ?? "seoul");

ob.country 가 null 이면 seoul 을 출력한다

 

자바스크립트 한계

컴파일어언어

컴파일언어는 소스 코드를 컴파일러를 통해 한 번에 기계어로 변환합니다. 

변환된 기계어는 실행 파일 형태로 생성되며, 별도의 컴파일 과정 없이 실행할 수 있습니다. 

C, C++, Java 등이 주로 사용되며, 실행 속도가 빠르고 효율적입니다. 

수정이 필요한 경우 다시 컴파일해야 하므로 개발 초기에는 번거로울 수 있습니다. 

 

인터프리터언어

인터프리터언어는 소스 코드를 한 줄씩 읽어서 실행합니다. 

소스 코드가 실행될 때마다 인터프리터가 필요하며, 소스 코드가 수정될 때마다 다시 해석되어야 합니다. 

Python, JavaScript, Ruby 등이 주로 사용되며, 개발 속도가 빠르고 이식성이 좋습니다. 

실행 속도는 컴파일언어에 비해 상대적으로 느릴 수 있습니다.

 

컴파일언어와 인터프리터언어의 차이

실행 방식

- 컴파일언어 : 전체 소스 코드를 한 번에 변환하여 실행 파일을 생성하고 실행합니다.

- 인터프리터언어 : 소스 코드를 한 줄씩 해석하고 실행합니다.

번역 시점

- 컴파일언어는 :실행하기 전에 컴파일 과정을 거쳐야 하므로 번역 시점이 필요합니다.

- 인터프리터언어 : 실행할 때마다 소스 코드를 해석하므로 번역 과정이 필요하지 않습니다.

수정 및 실행

- 컴파일언어 : 수정된 소스 코드를 다시 컴파일해야 하므로 번거로울 수 있습니다.

- 인터프리터언어 : 수정 후 바로 실행할 수 있습니다.

반응형

'웹 개발 > 🌐 JavaScript' 카테고리의 다른 글

ajax에서 contentType과 dataType의 차이  (0) 2023.07.06
암묵적 전역변수  (0) 2023.06.23
es6+ | 객체  (1) 2023.05.29
es6+ | 비구조화 할당  (1) 2023.05.29
es6+ | 화살표 함수  (0) 2023.05.29
  1. ?연산자
  2. ?? 연산자
  3. 자바스크립트 한계
'웹 개발/🌐 JavaScript' 카테고리의 다른 글
  • ajax에서 contentType과 dataType의 차이
  • 암묵적 전역변수
  • es6+ | 객체
  • es6+ | 비구조화 할당
이재원
이재원
이재원
깃든블로그
이재원
유튜브
깃허브
전체
오늘
어제
글쓰기 관리
  • 분류 전체보기 (453)
    • WORK (11)
      • ✍🏻 기록 (8)
      • PLC (1)
    • DevOps (30)
      • 🛠️ CICD (9)
      • 🐳 Docker & Kubernetes (12)
      • 📡 AWS (3)
      • 🌌 Git (6)
    • 웹 개발 (198)
      • 🖥️ HTML&CSS (11)
      • 🌐 JavaScript (39)
      • 🍃 SpringBoot (51)
      • 🎆 JSP (15)
      • 🐍 Python (16)
      • ⚛️ React (15)
      • #️⃣ TypeScript (15)
      • 🧊 ThreeJS (13)
      • 🟩 Node.js (16)
      • 🚨 Error Log (7)
    • 서버&백엔드 (100)
      • 🔥 JAVA (51)
      • 🗃️ DataBase (21)
      • 🐧 Linux (21)
      • 🖥️ Windows (7)
    • AI (6)
      • 🤖 딥러닝 (6)
    • 앱 개발 (1)
      • 📱 Flutter (1)
      • ReactNative (0)
    • 컴퓨터 과학 (71)
      • 🀰 디자인패턴 (10)
      • 🔢 자료구조 (11)
      • 🛜 네트워크 (12)
      • 🖥️ 운영체제 (1)
      • 🔆 프로그래밍 (5)
      • 💯 코테 (32)
    • 개인프로젝트 (4)
      • 🤪 forfun (2)
      • 💼 포트폴리오 (1)
      • 🍎 MacBook (1)
    • 자격증 (1)
      • 💯 OPIC (0)
      • 자격증 (1)
    • 꿀팁 (9)
      • ✨ 유용한 사이트 (8)
      • 📙 티스토리 (1)
    • 여행 (1)
      • ✈️ 해외여행 (1)
      • 🗺️ 국내여행 (0)
    • 음식 (6)
      • 🏰 맛집 (5)
      • 🍰 요리 (1)
    • 일상 (4)
      • 🎨 만들기 (1)
      • 🛒 쇼핑 (2)
      • 👟 운동 (1)
    • 유튜브 (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 역삼
  • 키오스크 공익
  • java
  • 영등포구청
  • 코딩테스트
  • thymleaf
  • 이자카야
  • nestjs
  • 오블완
  • 인사동
  • 티스토리챌린지
  • 까르띠에
  • 키오스크공익
  • 한식
  • 양평역
  • 러닝
  • 코테
  • 안국역
  • 존맛
  • 식권관리
  • 청담메종
  • 한강
  • 키오스크
  • 사케
  • 맛집
  • 스프링부트
  • springboot
  • JPA
  • 이천
  • 가성비
반응형
이재원
es6+ | 자바스크립트의 한계와 Null
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.