가장 많이 묻는 50가지 Javascript 인터뷰 질문 및 답변 [2022]
게시 됨: 2021-01-04목차
자바스크립트 인터뷰 질문과 답변
이 기사에서는 가장 자주 묻는 JavaScript 인터뷰 질문 을 정리했습니다. 이러한 질문을 통해 면접관이 면접 중 질문할 수 있는 유형의 질문을 알 수 있습니다.
JavaScript는 웹 개발에 매우 유용한 스크립팅 언어입니다. Brendan Eich는 1995년에 JavaScript를 개발했으며 Facebook 및 Google과 같은 거대 기업에서 사용합니다. JavaScript의 다양성을 이해하는 것은 매우 불가능합니다. 면접관은 약속 편지를 보내기 전에 항상 예비 직원의 지식을 측정하려고 노력합니다.
따라서 JavaScript 지식을 복습하는 것이 중요합니다. 다음은 면접을 보러 가는 경우 면접관이 물어볼 수 있는 몇 가지 Javascript 면접 질문 입니다.
자바스크립트 인터뷰 질문과 답변은 세 가지 범주로 나뉩니다.
- 초급 레벨
- 중급
- 고급 레벨
Javascript 인터뷰 질문 및 답변 – 초급 수준
Q1. 자바스크립트와 자바는 어떻게 다른가요?
Javascript는 객체 지향 프로그래밍 또는 OOP 스크립팅 언어입니다. Java는 객체 지향 프로그래밍 또는 OOP 프로그래밍 언어입니다.
JavaScript는 브라우저에서만 실행할 수 있습니다. Java는 브라우저나 가상 머신에서 실행할 수 있는 응용 프로그램을 만드는 데 도움이 됩니다.
JS는 텍스트 형식으로 제공됩니다. 자바는 컴파일이 필요하다

Q2. 자바스크립트란?
JavaScript는 객체 지향 기능을 갖춘 가볍고 해석된 프로그래밍 언어입니다. 상호 작용을 정적 HTML 페이지로 개발하는 데 도움이 됩니다.
Q3. JavaScript는 어떤 데이터 유형을 지원합니까?
JavaScript가 지원하는 몇 가지 데이터 유형은 다음과 같습니다.
- 부울
- 없는
- 끈
- 한정되지 않은
- 상징
- 물체
- 숫자
Q4. JavaScript의 다른 기능은 무엇입니까?
- Javascript는 가볍고 해석 가능한 프로그래밍 언어입니다.
- 네트워크 중심의 응용 프로그램을 만들도록 설계되었습니다.
- Java를 보완하고 Java와 통합됩니다.
- JavaScript는 크로스 플랫폼 및 개방형 스크립팅 언어입니다.
Q5. JavaScript는 대소문자를 구분합니까?
예, JavaScript는 대소문자를 구분합니다.
Q6. JavaScript에는 어떤 이점이 있습니까?
몇 가지 장점은 다음과 같습니다.
- 서버와의 더 낮은 상호 작용 : JavaScript의 도움으로 페이지를 서버로 보내기 전에 사용자 기반 입력의 유효성을 검사할 수 있습니다.
- 방문자에 대한 즉각적인 피드백 : 방문자는 페이지가 새로고침되기 전에 입력하는 것을 잊어버렸는지 즉시 알 수 있습니다.
- 상호 작용성 증가 : JavaScript를 사용하면 사용자가 인터페이스 위에 마우스를 올리거나 키보드를 사용하여 활성화하면 반응할 수 있는 다양한 인터페이스를 만들 수 있습니다.
Q7: JavaScript를 사용하여 객체를 생성하려면 어떻게 해야 합니까?
JavaScript는 객체 지향 프로그래밍 스크립팅 언어이므로 객체의 개념을 지원합니다. 개체 리터럴을 사용하여 개체를 만들 수 있습니다.
Q8. JavaScript를 사용하여 배열을 만드는 방법은 무엇입니까?
JavaScript에서 배열을 정의하려면 배열 리터럴을 사용하면 됩니다. 예시:
변수 x = [];
변수 y = [1, 2, 3, 4, 5];
Q9. JavaScript의 이름 기능은 무엇이며 어떻게 정의할 수 있습니까?
JavaScript의 명명된 함수는 일단 정의되면 이름을 선언합니다. 예시:
함수 이름(){
// 여기에 코드 작성
}
Q10. 익명 함수를 변수에 할당한 다음 다른 함수에 인수로 전달할 수 있습니까?
Javascript를 사용하면 익명 함수를 변수에 할당하고 다른 함수의 인수로 전달할 수 있습니다.
Q11. JavaScript에서 인수 객체란 무엇이며 함수에 전달된 인수 유형을 어떻게 얻을 수 있습니까?
JavaScript의 변수 인수는 함수에 전달되는 인수를 나타냅니다. typeof 연산자를 사용하여 인수의 유형을 가져올 수 있습니다.
Q12. JavaScript에서 변수의 범위는 무엇입니까?
변수의 범위는 변수가 정의된 프로그램의 영역을 의미합니다. 두 가지 범위가 있습니다.
- 전역 변수: 전역 변수에는 전역 범위가 있으므로 코드 내 모든 곳에서 볼 수 있습니다.
- 지역 변수: 지역 변수는 그것이 정의된 함수 내에서만 볼 수 있습니다.
Q13. JavaScript의 'This' 연산자는 무엇을 합니까?
JavaScript에서 사용되는 'This' 키워드는 그것이 속한 객체에 대해 이야기합니다. 다양한 값을 가지며 사용 위치에 따라 다릅니다.
Q14. '콜백'이란 무엇입니까?
콜백은 옵션 또는 인수로 일부 메서드에 전달되는 JavaScript 함수입니다. 콜백은 다른 함수의 실행이 완료된 후 실행되어야 하는 함수입니다.
Q15. 폐쇄를 정의하시겠습니까?
특정 변수가 현재 범위 외부에 정의되어 있고 내부 범위가 있는 내부에서 액세스할 때 클로저가 개발됩니다.
Q16. JavaScript에 내장된 메소드에는 어떤 것이 있으며 이 메소드에서 반환되는 값은 무엇입니까?
내장 메서드와 그에 의해 반환되는 값 중 일부는 다음과 같습니다.
Concat()은 둘 이상의 문자열을 결합하는 데 도움이 됩니다.
CharAt()는 특정 인덱스의 문자를 반환하는 데 도움이 됩니다.
forEach()는 배열에 있는 각 요소에 대한 함수를 호출하는 데 도움이 됩니다.
length()는 문자열의 길이를 반환하는 데 도움이 됩니다.
indexOf()는 특정 값이 처음 나타나는 호출 String 객체 내에서 인덱스를 반환하는 데 도움이 됩니다.
push() 는 배열 끝에 하나 이상의 요소를 추가한 다음 해당 배열의 새 길이를 반환하는 데 도움이 됩니다.
pop() 은 배열에서 마지막 요소를 제거하고 해당 요소를 반환하는 데 도움이 됩니다.
reverse() 는 배열 요소의 순서를 바꾸는 데 도움이 됩니다.
Q17. JavaScript에서 변수 이름을 지정하는 몇 가지 규칙은 무엇입니까?
몇 가지 규칙은 다음과 같습니다.
- JavaScript 예약 키워드를 변수 이름으로 사용해서는 안 됩니다.
- JavaScript의 변수 이름은 0-9 사이의 숫자로 시작할 수 없습니다.
- JavaScript의 변수 이름은 대소문자를 구분합니다.
Q18. TypeOf 연산자의 작업은 무엇입니까?
typeof 연산자는 피연산자의 데이터 유형을 가져오는 데 사용할 수 있습니다. 지정된 피연산자는 데이터 구조 또는 함수, 개체 또는 변수와 같은 리터럴일 수 있습니다.
Q19. JavaScript의 도움으로 쿠키를 어떻게 만들 수 있습니까?
document.cookie 객체에 문자열 값을 할당하기만 하면 JavaScript에서 쿠키를 만들 수 있습니다.
구문:
document.cookie = "키1 = 값1; 키2 = 값2; 만료 = 날짜";
Q20. JavaScript를 사용하여 쿠키를 읽는 방법은 무엇입니까?
실제로 document.cookie 객체의 값이기 때문에 JavaScript에서 쿠키를 생성하는 것처럼 간단하게 쿠키를 읽을 수 있습니다. 특정 쿠키에 액세스하려면 이 문자열을 언제든지 사용할 수 있습니다.
- document.cookie 문자열을 사용하여 세미콜론으로 구분된 이름 - 값 쌍 목록을 유지할 수 있습니다. 여기서 이름은 실제로 쿠키의 이름이고 값은 문자열 값입니다.
- 문자열의 split() 함수를 사용하여 문자열을 값과 키로 나눌 수도 있습니다.
Q21. JavaScript를 사용하여 쿠키를 삭제하는 방법은 무엇입니까?
이후에 쿠키를 읽으려는 시도에서 아무 것도 반환하지 않도록 쿠키를 삭제하려면 쿠키의 만료 날짜를 과거 시간으로 설정해야 합니다.
귀하의 JavaScript 지식을 실제로 테스트할 보다 중급 수준의 JavaScript 인터뷰 질문으로 넘어가 보겠습니다.
Javascript 인터뷰 질문 및 답변 – 중급
Q22. 속성은 속성과 어떻게 다릅니까?
속성은 유형, ID, 값 등과 같은 요소에 대한 자세한 정보를 제공합니다.

속성은 속성에 할당된 특정 값입니다. 예를 들어 값 = '이름', 유형 = "텍스트" 등입니다.
Q23. JavaScript 코드 내에서 HTML 요소에 액세스할 수 있는 다양한 방법의 목록을 제공하시겠습니까?
몇 가지 방법은 다음과 같습니다.
- getElementById('idname'): 이 방법을 사용하면 요소의 ID 이름으로 요소를 가져올 수 있습니다.
- getElementsByClass('classname'): 이 메서드를 사용하면 주어진 클래스 이름을 가진 모든 요소를 가져올 수 있습니다.
- getElementsByTagName('tagname'): 이 방법을 사용하면 주어진 태그 이름을 가진 모든 요소를 가져올 수 있습니다.
- querySelector(): querySelector() 함수는 CSS 스타일 선택기를 사용하여 첫 번째로 선택된 요소를 반환합니다.
Q24. JavaScript 코드가 HTML 파일에 포함될 수 있는 다양한 방법은 무엇입니까?
세 가지 다른 방법:
- 인라인
- 외부의
- 내부의
인라인 함수로 알려진 JavaScript 함수는 런타임에 생성되는 변수에 할당됩니다. 반면에 기능을 위한 JavaScript가 필요한 경우 작업 중인 페이지에 스크립트를 통합하거나 필요할 때 호출할 수 있는 별도의 파일로 저장할 수 있습니다. 이것은 본질적으로 외부 스크립트와 내부 스크립트의 차이가 됩니다.
Q25. JavaScript 변수를 정의할 수 있는 다른 방법은 무엇입니까?
3가지 방법이 있습니다:
- Var – JavaScript 변수 문은 변수를 선언하는 데 도움이 됩니다. 또는 특정 변수의 값을 초기화하는 데 사용할 수도 있습니다.
- Const: const 함수는 호출된 개체의 수정을 허용하지 않도록 사용됩니다. 따라서 함수가 const라고 하면 모든 객체 유형에서 해당 함수를 호출할 수 있습니다.
- Let: Let은 루프의 카운터 또는 알고리즘 내 값 스왑과 같이 변수를 재할당할 수 있음을 나타내는 신호로 사용됩니다.
Q26. 타자 언어란?
Typed Language에서 값은 값과만 연관됩니다. 그것들은 변수와 연관되지 않습니다. 유형 언어에는 두 가지 유형이 있습니다.
동적으로: 동적으로 유형이 지정된 언어의 경우 변수는 여러 유형을 보유할 수 있습니다.
Statically: Statically Typed 언어에서 변수는 한 가지 유형만 보유할 수 있습니다.
Q27. 로컬 스토리지는 세션 스토리지와 어떻게 다릅니까?
로컬 스토리지 – 로컬 스토리지에서 데이터는 모든 HTTP 요청(이미지, HTML, CSS, JavaScript 등)에서 서버로 반환되지 않습니다. 서버와 클라이언트 간의 트래픽을 줄이는 데 도움이 됩니다.
세션 저장소 – 세션 저장소는 로컬 저장소와 매우 유사합니다. 그러나 만료 시간이 있는 로컬 시스템의 데이터 저장소와 달리 세션 저장소를 사용하여 저장된 데이터는 페이지 세션이 종료되면 지워집니다.
Q28. 연산자 '=='와 '==='의 차이점은 무엇입니까?
연산자 "=="와 연산자 '==='의 차이점은 전자는 유형 수정을 통해 변수를 비교한다는 것입니다. 따라서 숫자 리터럴이 있는 문자열과 숫자를 비교하려는 경우 '==='가 아닌 '=='를 사용하여 이러한 비교를 수행할 수 있습니다. '==='는 두 변수의 값과 유형을 확인합니다.
Q29. null 및 정의되지 않은 차이점은 무엇입니까?
정의되지 않은 변수는 선언되었지만 데이터의 값 할당이 수행되지 않은 변수를 나타냅니다. 그러나 null 자체는 할당 값입니다.
Q30. 선언되지 않은 것과 정의되지 않은 것은 어떻게 다른가요?
선언되지 않은 변수는 프로그램에 존재하지 않으므로 선언되지 않은 변수입니다. 프로그램이 읽기를 시도하면 런타임 오류가 발생합니다. 정의되지 않은 변수는 선언되었지만 값이 주어지지 않은 변수입니다.
Q31. 몇 가지 JavaScript 프레임워크의 이름을 지정하시겠습니까?
JavaScript 프레임워크는 JavaScript로 작성된 애플리케이션 프레임워크를 의미합니다. 몇 가지 일반적인 사항은 다음과 같습니다.
- 반응
- 모난
- 뷰
Q32. JavaScript 창과 JavaScript 문서는 어떻게 다릅니까?
Window는 전역 객체이며 함수, 변수, 위치 및 기록을 보유합니다.
문서는 창의 일부이며 자바스크립트 창의 속성으로 간주됩니다.
Q33. innerText와 innerHTML은 어떻게 다릅니까?
innerText – innerText는 HTML 태그가 문자열 내에 있는 경우 처리하지 않습니다.
innerHTML – innerHTML은 HTML 태그가 문자열 내에 있는 경우 처리합니다.
Q34. JavaScript에서 이벤트 버블링이란 무엇입니까?
이벤트 버블링은 HTML DOM API에서 이벤트 전파의 특정 방법을 나타냅니다. 이것은 이벤트가 다른 요소 내부의 요소 내에서 발생하고 두 요소에 해당 이벤트에 대해 등록된 핸들이 있을 때 발생합니다. 버블링의 경우 가장 안쪽 요소가 먼저 포착한 이벤트가 결국 바깥쪽 요소로 전달됩니다.
한 이벤트에서 실행이 시작되면 상위 요소로 이동합니다. 그 후에 실행은 상위 요소로 전달되고 이것은 body 요소까지 계속됩니다.
Q35. 자바스크립트에서 NaN이란?
NaN은 숫자가 아님을 나타냅니다. NaN은 항상 NaN 자체를 포함하여 모든 숫자와 같지 않은 것을 비교하는 데 사용됩니다. 따라서 일반적으로 유효한 숫자를 반환할 수 있는 모든 함수에 대한 오류 조건을 표시하는 데 사용됩니다. 예를 들어 문자열을 숫자로 변환할 때 변환할 수 없으면 NaN이 표시됩니다.
Q36. JavaScript 기본/객체 유형은 함수를 통해 어떻게 전달됩니까?
기본 데이터 유형은 값으로 전달되는 반면 개체는 참조로 전달됩니다.
- By Value는 sd가 쌍둥이인 경우 정품 또는 원본 sd의 사본을 개발한다는 의미입니다.
- By Reference는 정품 또는 원본의 ALIAS를 생성한다는 의미입니다. 일반적인 닉네임과 비교할 수 있습니다.
Q37. JavaScript를 사용하여 기본 문자열을 정수로 변환하는 방법은 무엇입니까?
parseInt() 함수를 사용하여 다른 기수 사이에서 숫자를 변환할 수 있습니다.
Q38. JavaScript에서 문제의 결과는 무엇입니까: 2+5+“3”?
- 2와 5는 정수이므로 일반 덧셈이 실행됩니다. 그러나 3은 문자열이므로 연결이 발생합니다. ""는 문자열을 나타냅니다.
Q39. 수입과 수출은 무엇입니까?
가져오기 및 내보내기는 모듈식 JavaScript 코드를 작성하는 데 유용합니다. 여러 파일로 더 나눌 수 있습니다.
당신은 이미 어려운 자바스크립트 인터뷰 질문 중 일부를 마스터하고 있습니다. 이제 심층적으로 파고들어 고급 자바스크립트 인터뷰 질문과 답변에 대해 알아볼 시간입니다.
Javascript 인터뷰 질문 및 답변 – 고급 레벨
Q40. Strict 모드는 무엇이며 어떻게 활성화할 수 있습니까?
Strict 모드는 코드의 오류를 확인하는 데 도움이 됩니다. 엄격 모드를 사용하는 경우 암시적으로 선언된 변수를 사용할 수 없으며 읽기 전용 속성에 값을 할당할 수도 없습니다.
엄격 모드를 활성화하려면 프로그램, 함수 또는 파일의 시작 부분에 "use strict"를 추가하기만 하면 됩니다.
Q41. JavaScript에서 프롬프트 상자의 용도는 무엇입니까?
JavaScript의 프롬프트 상자는 사용자가 텍스트 상자를 사용하여 입력할 수 있도록 도와줍니다. prompt() 메서드는 방문자에게 입력을 제공하라는 메시지를 표시하는 대화 상자를 표시하는 데 도움이 됩니다.
Q42. 이 코드에서 어떤 결과가 나올까요?
변수 Y = 1;
if (함수 F(){})
{
y += F 유형;</span>
}
console.log(y);
1undefined가 출력됩니다. 이는 if 조건문이 'eval'을 사용하여 평가되므로 eval(function f(){})이 f(){}(true) 함수를 반환하기 때문입니다. 따라서 이 if 문 내에서 if 문 코드가 런타임에 실행되기 때문에 undefined를 반환하는 typeof f를 실행합니다. 따라서 if 조건 내부에 있는 문이 런타임 동안 평가됩니다.
Q43. 신청과 전화의 차이점을 말씀해 주시겠습니까?
call() 메서드는 주어진 'this' 값과 개별적으로 제공되는 인수를 가진 함수를 호출하는 데 도움이 됩니다. 구문은 다음과 같습니다.
fun.call(thisArg[, arg1[, arg2[, …]]])
apply() 메서드는 주어진 'this' 값을 가진 함수를 호출하는 데 사용되지만 인수는 배열로 표시됩니다. 구문은 다음과 같습니다.
fun.apply(thisArg, [argsArray])
Q44.JavaScript에서 배열을 어떻게 비울 수 있습니까?
배열을 비우는 몇 가지 방법이 있습니다. 그들은:
방법 1:
배열 목록 = []
원래 배열 arrayList에 대한 참조가 없는 경우 이 방법을 사용하는 것이 좋습니다. 그러나 이전에 다른 변수에서 이 배열을 참조한 경우 원래 참조 배열은 변경되지 않은 상태로 유지됩니다.
방법 2:
배열 목록.길이 = 0;
이 코드를 사용하여 배열 길이를 0으로 설정하여 참조 변수의 모든 업데이트를 비우고 원래 배열로 돌아갑니다.
방법 3:
arrayList.splice(0, arrayList.length);
이 방법을 사용하여 원래 배열에 대한 모든 참조 업데이트를 포함하여 모든 배열을 비울 수도 있습니다.
방법 4:
동안(arrayList.length)
{
배열 목록.팝();
}
이것은 또한 배열을 비우는 좋은 방법이지만 권장되는 방법은 아닙니다.
Q45. 이 코드는 어떤 출력을 보여줄까요?
var 출력 = (함수(x)
{
삭제 X;
반환 X;
}
)(0);
console.log(출력);
삭제 연산자는 개체에서 속성을 삭제하는 데 도움이 됩니다. 이 코드에서 x는 객체가 아니라 지역 변수로 사용됩니다. 삭제 연산자는 지역 변수에 영향을 미치지 않습니다.
Q46. 이 코드는 어떤 출력을 보여줄까요?
var X = { 푸 : 1};
var 출력 = (함수()
{
삭제 X.foo;
반환 X.foo;
}
)();
console.log(출력);
정의되지 않은 출력. 삭제 연산자는 개체에서 속성을 삭제하는 데 도움이 됩니다. 이 코드에서 x는 foo를 사용하는 속성을 가진 객체입니다. 이것은 자체 호출 함수이므로 x 객체에서 foo 속성을 삭제합니다. 따라서 결과는 정의되지 않습니다.
Q47. 이 코드는 어떤 출력을 보여줄까요?
var 직원 =
{
회사: 'xyz'
}
var Emp1 = Object.create(직원);
삭제 Emp1.company Console.log(emp1.company);
결과 = xyz. 이 코드에서 emp1 객체는 회사를 프로토타입 속성으로 사용합니다. 삭제 연산자는 프로토타입 속성을 삭제하지 않습니다. emp1 개체에는 회사가 속성으로 포함되어 있지 않습니다. delete Employee.company를 사용하여 Employee 개체에서 회사 속성을 직접 삭제할 수 있습니다.
Q48. 이 코드는 어떤 출력을 보여줄까요?
//nfe(명명된 함수 표현식)
var Foo = 함수 막대()
{
리턴 7;
};
typeof Bar();
출력 = 참조 오류. 함수 정의는 함수 이름으로 하나의 참조 변수만 가질 수 있습니다.
Q49. 함수 책에서 JavaScript 소스 파일의 내용을 래핑하는 것이 일반적인 이유는 무엇입니까?
많은 JavaScript 라이브러리가 이 기술을 사용합니다. 개인 네임스페이스를 생성하는 데 도움이 되는 파일 내용 주위에 클로저를 개발하는 데 도움이 되므로 다른 JavaScript 모듈 및 라이브러리와의 이름 충돌을 피할 수 있습니다.
Q50. JavaScript에서 이스케이프 문자는 무엇입니까?
이스케이프 문자를 사용하면 응용 프로그램을 중단하지 않고도 특수 문자를 작성할 수 있습니다.

세계 최고의 대학에서 소프트웨어 공학 학위 를 취득하십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
결론
다음은 인터뷰에 성공하는 데 도움이 되도록 다양한 난이도로 제공되는 인기 있는 자바스크립트 인터뷰 질문입니다. 이 자바스크립트 인터뷰 질문과 답변을 사용하여 자바스크립트에 대한 기본 및 고급 지식을 닦는 것은 최고의 기술 회사에서 개발자로 일할 수 있는 좋은 방법입니다.
어떤 사람들은 웹 개발의 예술적 측면을 선호하고 어떤 사람들은 기술적인 측면을 선호합니다. 그러나 두 가지를 모두 알고 있는 세 번째 그룹의 사람들이 있습니다. 첫 번째 그룹은 프론트엔드 개발자, 두 번째 그룹은 백엔드 개발자, 마지막 그룹은 풀스택 개발자입니다.
풀스택 개발자에 대한 수요가 증가하고 있습니다. 회사는 HTML과 PHP를 모두 사용할 수 있는 재능 있는 전문가를 절실히 필요로 합니다.
전체 스택 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 이그 제 큐 티브 PG 프로그램을 확인하십시오. 이 프로그램은 일하는 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트 및 과제를 제공합니다. IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
자바스크립트란?
JavaScript는 객체 지향 기능을 갖춘 가볍고 해석된 프로그래밍 언어입니다. 정적 HTML 페이지로 상호 작용을 개발하는 데 도움이 됩니다.
JavaScript는 대소문자를 구분합니까?
예, JavaScript는 대소문자를 구분합니다.
JavaScript에서 변수의 범위는 무엇입니까?
전역 변수: 전역 변수에는 전역 범위가 있으므로 코드 내 모든 곳에서 볼 수 있습니다.
지역 변수 : 지역 변수는 그것이 정의된 함수 내에서만 볼 수 있습니다.