Medium - 24 quick-fire JavaScript interview questions

원문 - Daniel Anderson

Trend 파악을 위한 Medium 기고문 포스팅 - 자바스크립트 면접 질문 24가지

JavaScript Quickfire interview questions

  • Explain the difference between “==” and “===” “==”는 두개의 값이 동일한지 비교할 때 쓰입니다. “===” 연산자는 두개의 값이 일치하고 데이터 타입까지 일치하는 지 확인할 때 쓰입니다.
"50" == 50 // true
"50" === 50 // false
50 === 50 // true
  • How do you check if a value is a number? isNaN() 함수는 변수의 값이 숫자인지 아닌지 확인해줍니다
isNaN(48) // false
isNaN(-1.23) // false
isNaN(5-2) // false
isNaN('123') // false
isNaN('Hello Im a real string') // true
isNaN('2005/12/12') // true
isNaN('') // false
isNaN(undefined) // true
  • How do you convert a string to an int? parseInt()는 숫자 전체를 문자열로 변환해 줍니다.
parseInt("30") // 30
parseInt("55px") // 50
parseInt(2.55) //2

parseFloat() 문자열을 소수점으로 변환해 줍니다.

parseFloat("30") // 30
parseFloat("55px") // 50
parseFloat(2.55) // 2.55

Number()메소드도 문자열을 숫자로 변환해 줍니다. 이 메소드는 정수와 부동소수점 모두 가능하죠. 하지만 그렇기 때문에 parseInt, parseFloat 보다는 덜 안전합니다.

  • Name the different loops in JavaScript for - 코드블록을 여러번 순회합니다.

for/in- 객체의 프로퍼티들을 순회합니다.

for/of - 순회 가능한 객체의 값들을 순회합니다.

while - 조건이 참일 경우에만 코드블록을 순회합니다.

  • What is the difference between var, let and const?

var은 선언 후에 값이 변경될 수 있습니다.

let은 값이 업데이트 될 수 있지만 재정의를 할 수는 없습니다.

const는 값이 업데이트 될수도 없고 재정의 될 수도 없습니다.

var myNumber = 10;
var myNumber = 20;

// No error

let myNumber = 10;
let myNumber = 20;
// myNumber has already been declared 오류 발생
  • What is the difference between NULL and undefined?

NULL은 값을 할당한 것입니다. 아무 값이 없음을 나타내는 값이죠. undefined의 의미는 변수가 선언은 되었지만 값이 할당되지 않음을 나타냅니다.

let hi // undefined

let hi = NULL; // NULL
  • What is the typeof operator used for?

typeof 연산자는 피연산자의 타입을 문자열로 나타내줍니다.

typeof(122) // number
typeof(122.55) // number
typeof("I'm a string") // string
typeof({ name: 'James Smith'}) // object
typeof(false) // boolean
  • How do you check if an object is an array?

isArray() 함수는 객체가 배열인지 아닌지 판단해줍니다.

  • What is a callback?

콜백은 고차함수로 알려져 있으며 다른 함수의 매개변수로 전달할 수 있는 것입니다.

  • Explain what default function parameters are

파라미터로 넘겨지는 이름은 기본값으로 초기화되며 값이 없을 경우 undefined가 전달됩니다.

function addTogether(x, y = 1 ) {
  return x + y;
}

addTogether(10, 10) // 20
addTogether(10) //11
  • What are ES6 modules?

자바스크립트 코드와 관련된 집합으로 이루어져 있습니다. 모듈은 변수들과 함수들을 가지고 있으며 모듈은 자바스크립트 코드가 씌여진 파일 덩어리입니다.

  • Name the two different ES6 exports

Default익스포트는 모듈이 오직 하나의 값만 필요할 때 사용합니다.

Named익스포트는 이름으로 구분됩니다. 이렇게하면 하나의 모듈에서 여러개를 익스포트 할 수 있습니다.

  • What are Promises?

비동기함수를 처리하기 위해 사용됩니다. 여러개의 비동기 연산들을 쉽게 처리할 수 있으며 콜백과 이벤트를 사용하는 것보다 더욱 쉽게 에러를 처리할 수 있습니다.

  • What are the different states in promises?

프로미스는 4가지 상태가 있습니다.

  1. fulfilled: 프로미스가 성공했을 때의 액션입니다.
  2. rejected: 프로미스가 실패했을 때의 액션입니다.
  3. pending: 프로미스가 아직 실행 중이며 성공 / 실패로 결정나기 전입니다.
  4. settled: 프로미스가 성공 / 실패로 결정된 상태입니다.
  • What is async / await?

함수 앞에 쓰이는 await는 아주 심플합니다 함수가 항상 프로미스를 리턴한다는 것이죠. 다른 값들은 자동적으로 프로미스를 해결한 것으로 랩핑됩니다.

await는 자바스크립트를 해당 프로미스가 값이 결정되고 그 결과를 리턴할 때까지 기다립니다.

  • What is difference between local storage & session stroage?

local은 명시적으로 삭제되기 전까지는 유지됩니다. 변경 사항은 저장이 되어서 현재에도 사용가능하며 다음번 사이트를 방문할 때도 유지됩니다.

session은 오직 하나의 탭에서만 유지가 됩니다. 변경사항은 현재 탭의 페이지에서만 유지가 되며 닫히기 전까지만 사용할 수 있습니다. 한번 탭이 닫혀버리면 저장된 데이터도 제거됩니다.

  • Name the different DOM selectors
  • getElementsByTagName()
  • getElementsByClassName()
  • getElementById()
  • querySelector()
  • querySelectorAll()

  • What is a closure?

스코프 외부에서 정의된 변수를 내부 스코프에서 접근할 때 클로져가 필요합니다.

  • How do you add an item(s) to an array?

push()함수를 사용해서 배열에 항목을 추가할 수 있습니다. 한번에 여러개의 항목들을 추가할 수도 있습니다.

let items = ["dan", "john"];

item.push("liam"); // ["dan", "john", "liam"]
item.push("lee", "james"); // ["dan", "john", "liam", "lee", "james"]
  • How do you remove a specific item from an array?

splice함수는 인덱스를 사용해서 배열에서 해당 항목을 삭제합니다.

filter를 사용해서 콜백함수 내에서 제거할 수 있습니다.

  • Why is JavaScript called a loosely typed or a dynamic language?

자바스크립트는 루즈타입 혹은 동적 언어라고 불리는데 왜냐하면 자바스크립트의 변수는 직접적으로 모든 변수 타입과 연결되지 않고 모든 변수가 모든 타입으로 재할당될 수 있기 때문입니다.

let someLet = 10; // someLet은 정수
someLet = "Hello world" // someLet은 문자열이 됩니다.
someLet = true // someLet은 이제 불변수입니다.
  • What is “this”?

this 키워드는 현재 씌여진 코드 내부의 객체를 가리킵니다.

  • How do you make an API call in JavaScript?
  1. XMLHttpRequest
  2. fetch
  3. Axios
  4. jQuery
  • Name the API verb types which you would use in JavaScript
  1. POST
  2. GET
  3. PATCH
  4. DELETE
  5. PUT

Conclusion

대개 위와같은 종류의 질문들을 면접에서 받아봤고 또 제가 질문해봤습니다. 아마 이정도면 자바스크립트 개념 인터뷰로는 충분할 것 같습니다. 코딩 테스트까지 추가한다면 지원자의 역량을 알아보는데 충분할 거 같네요!

Summary

  • 자바스크립트 기본 개념 질문들,

© 2019. All rights reserved.

Powered by Hydejack v8.1.1