Medium - 24 quick-fire JavaScript interview questions
in Trend
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
andconst
?
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
andundefined
?
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가지 상태가 있습니다.
- fulfilled: 프로미스가 성공했을 때의 액션입니다.
- rejected: 프로미스가 실패했을 때의 액션입니다.
- pending: 프로미스가 아직 실행 중이며 성공 / 실패로 결정나기 전입니다.
- 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?
- XMLHttpRequest
- fetch
- Axios
- jQuery
- Name the API verb types which you would use in JavaScript
- POST
- GET
- PATCH
- DELETE
- PUT
Conclusion
대개 위와같은 종류의 질문들을 면접에서 받아봤고 또 제가 질문해봤습니다. 아마 이정도면 자바스크립트 개념 인터뷰로는 충분할 것 같습니다. 코딩 테스트까지 추가한다면 지원자의 역량을 알아보는데 충분할 거 같네요!
Summary
- 자바스크립트 기본 개념 질문들,