만약 객체에 없는 값을 찍으면 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+ | 비구조화 할당 (0) | 2023.05.29 |
es6+ | 화살표 함수 (0) | 2023.05.29 |