Post

자바스크립트 part1 (면접용)

자바스크립트 면접용

자바스크립트(JS)는 현대 웹 개발에서 가장 널리 사용되는 프로그래밍 언어 중 하나입니다. 이 언어의 특징, 장단점, 그리고 몇 가지 주요한 개념들을 살펴보겠습니다.

자바스크립트의 장단점

장점

웹 브라우저에서 실행 가능: 모든 주요 웹 브라우저에서 지원되며, 클라이언트 측 스크립트 언어로 사용됩니다. 동적으로 실행되는 언어: 코드를 즉시 실행하여 결과를 확인할 수 있어 빠르게 개발할 수 있습니다. 다양한 용도로 사용 가능: 웹 개발뿐만 아니라 서버 개발 (Node.js), 모바일 앱 개발 (React Native 등), 게임 개발 등 다양한 분야에서 사용됩니다.

단점

브라우저 호환성: 모든 브라우저에서 동일하게 동작하지 않을 수 있습니다. 동적 타입: 동적 타입 언어로써 개발자의 실수로 인한 버그 발생 가능성이 높습니다. 비동기 처리의 복잡성: 비동기 코드를 작성할 때 콜백 지옥(callback hell)과 같은 문제가 발생할 수 있습니다. 데이터 타입과 형 변환

자바스크립트의 기본 데이터 타입

원시 타입(Primitive types)

  • number: 숫자 (정수 및 부동 소수점 수)
  • string: 문자열
  • boolean: 불리언 (true 또는 false)
  • null: 값이 없음을 나타내는 특별한 값
  • undefined: 정의되지 않은 값
  • symbol: 고유하고 변경할 수 없는 값 참조 타입(Reference types)
  • object: 객체 (배열, 함수, 객체 등)

형 변환은 데이터를 다른 타입으로 변환하는 과정을 말합니다. 자바스크립트에서 형 변환은 명시적(explicit) 및 암시적(implicit) 형 변환이 있습니다.

명시적 형 변환 예시

1
2
let num = '10';
num = Number(num); // 문자열 '10'을 숫자 10으로 변환

암시적 형 변환 예시

1
let result = 10 + '5'; // 숫자 10이 문자열로 변환되어 '105'가 됨

프로토타입과 상속 자바스크립트는 프로토타입 기반 언어이며, 상속을 프로토타입 체인(Prototype Chain)을 통해 구현합니다. 모든 객체는 부모 역할을 하는 프로토타입 객체를 가지고 있습니다.

1
2
3
4
5
6
7
8
9
10
function Person(name) {
  this.name = name;
}

Person.prototype.greet = function() {
  return 'Hello, ' + this.name;
};

let person1 = new Person('Alice');
console.log(person1.greet()); // 출력: Hello, Alice

위의 예제에서 Person 함수 객체의 prototype 프로퍼티를 통해 greet() 메서드를 정의하고, person1 객체는 이를 상속받아 사용합니다.

var, let, const 차이

var: 함수 스코프를 가지며, 재선언 가능하고 호이스팅 됩니다. let: 블록 스코프를 가지며, 재선언 불가능하고 호이스팅 됩니다. const: 블록 스코프를 가지며, 재할당이 불가능하고 선언과 동시에 초기화되어야 합니다.

1
2
3
var x = 10;
let y = 20;
const z = 30;

위의 예제에서 x는 var로 선언되었기 때문에 함수 스코프를 가지고 재할당 및 재선언이 가능합니다. y는 let으로 선언되었기 때문에 블록 스코프를 가지며 재할당은 가능하지만 재선언은 불가능합니다. z는 const로 선언되었기 때문에 재할당과 재선언이 모두 불가능합니다.

This post is licensed under CC BY 4.0 by the author.