면접

자바스크립트 기초 면접 질문

index.ys 2023. 9. 6. 11:35

var, let, const:

var: ES5에서 사용되던 변수 선언 키워드로, 함수 스코프를 가지며 호이스팅 현상이 발생합니다. 변수 재선언이 가능하며 블록 스코프를 무시합니다.

let: ES6에서 도입된 변수 선언 키워드로, 블록 스코프를 지원하며 호이스팅이 발생하지만 초기화하기 전에는 사용할 수 없습니다. 변수 재선언은 불가능합니다.

const: 상수를 선언하기 위한 키워드로, let과 유사하지만 변수에 할당된 값을 변경할 수 없습니다.

Promise

Promise는 JavaScript에서 비동기 작업을 처리하기 위한 객체입니다. 비동기 작업이 완료되면 결과를 반환하거나 실패한 경우 오류를 처리할 수 있습니다. Promise는 세 가지 상태를 가질 수 있으며, 이는 대기(pending), 이행(fulfilled), 거부(rejected)입니다.

Hoisting

Hoisting은 JavaScript에서 변수 및 함수 선언이 스코프의 맨 위로 끌어올려지는 현상을 의미합니다. 이는 변수 및 함수를 선언하기 전에도 사용할 수 있다는 것을 의미하지만, 변수 초기화는 끌어올려지지 않으므로 주의가 필요합니다.

async/await

async/await는 비동기 코드를 보다 동기적으로 작성할 수 있게 해주는 ES8(ES2017)에서 도입된 기능입니다. async 함수 내에서 await 키워드를 사용하여 비동기 작업을 기다리고, 해당 작업이 완료될 때까지 다음 코드 실행을 일시 중지합니다.

Arrow Function

Arrow Function은 함수를 간결하게 정의하기 위한 ES6의 기능입니다. 화살표(=>)를 사용하여 함수를 선언하며, 주로 익명 함수를 간단하게 작성할 때 유용합니다. this의 동작 방식이 일반 함수와 다르며, 스코프를 공유합니다.

'=='와 '===' 연산자의 차이:

'=='는 동등 연산자로, 값의 내용만을 비교합니다. 형 변환을 수행하며, 두 값이 같은 데이터 타입으로 변환되면 내용을 비교합니다.

'==='는 일치 연산자로, 값과 데이터 타입을 모두 비교합니다. 형 변환을 수행하지 않고 엄격한 비교를 수행합니다.

Express

Express는 Node.js를 위한 웹 애플리케이션 프레임워크로, 웹 서버 및 API 개발에 사용됩니다. 간편한 라우팅, 미들웨어 지원, HTTP 요청 및 응답 관리 등의 기능을 제공합니다. 대안으로는 Koa, Hapi 등이 있습니다.

npm

npm은 Node Package Manager의 약자로, JavaScript 패키지 관리자입니다. JavaScript 프로젝트에서 필요한 패키지를 설치하고 관리하는 도구이며, 패키지 공유 및 배포를 위한 플랫폼으로도 사용됩니다.

사용자 패스워드 전송 및 보관

패스워드는 암호화된 상태로 전송되어야 합니다. HTTPS 프로토콜을 사용하여 데이터를 암호화하고 안전하게 전송합니다.

패스워드는 안전한 방법으로 저장되어야 합니다. 보통 해시 함수를 사용하여 패스워드를 해시화한 후, 솔트(salt) 값을 추가하여 보안을 강화하고 레인보우 테이블 공격을 방지합니다.

보안 업데이트 및 암호화 기술의 최신 표준을 따라야 합니다. 패스워드 해시 알고리즘을 업데이트하고 보안 취약점을 주기적으로 확인해야 합니다.