top 45 javascript interview questions with detailed answers
모든 JavaScript 개발자를위한 자세한 답변과 함께 가장 자주 묻는 기본 및 고급 JavaScript 인터뷰 질문.
인터뷰를 준비하고 계신다면 가장 자주 묻는 JS 인터뷰 질문과 답변을 참고하세요.
기술 인터뷰 중에 발생할 수있는 질문에 대해 소개 할 수 있도록 동일한 방법을 설계했습니다.
탐험하자 !!
JavaScript 정보
JavaScript는 고수준 프로그래밍 언어로, 아마도 현재 세계에서 가장 많이 사용되는 프로그래밍 언어 중 하나 일 것입니다. 웹 브라우저 또는 서버를 프로그래밍하는 데 사용할 수 있습니다.
JavaScript의 중요성을 이해하려면 브라우저에서 JavaScript를 비활성화하고 웹 페이지를로드 해보십시오. 이러한 웹 페이지는 제대로 작동하지 않습니다. 많은 내용이 오작동 할 수 있습니다. 거의 모든 최신 브라우저는 JavaScript, CSS 및 HTML의 조합을 사용합니다.
JavaScript는 해석 된 프로그래밍 언어입니다. 인터프리터는 구글 크롬, 마이크로 소프트 인터넷 익스플로러 등과 같은 브라우저에 내장되어 있습니다. 따라서 그 코드는 브라우저의 자바 스크립트 엔진에 의해 처리 될 수 있습니다.
JavaScript는 1995 년 12 월에 등장했으며 처음에는 LiveScript라고 불렸지만 마케팅상의 이유로 곧 이름이 변경되었습니다. 닮았지만 완전히 다른 언어 인‘자바’와 혼동해서는 안됩니다.
가장 자주 묻는 자바 스크립트 인터뷰 질문
Q # 1) 자바 스크립트 란?
대답: JavaScript는 Netscape에서 개발 한 스크립팅 언어입니다. 웹 브라우저 또는 서버를 프로그래밍하는 데 사용할 수 있습니다. 이 언어의 아름다움 인 웹 페이지의 내용을 동적으로 업데이트 할 수 있습니다.
Q # 2) External JavaScript를 사용하면 어떤 이점이 있습니까?
대답: 코드에서 외부 JavaScript를 사용하면 많은 이점이 있습니다.
아래에 설명되어 있습니다.
- 코드 분리가 완료되었습니다.
- 코드 유지 관리가 쉽습니다.
- 성능이 더 좋습니다.
Q # 3) 다음 코드 스 니펫에서 출력을 예측해 주시겠습니까? 아니면 오류가 발생하면 오류를 설명해주세요.
Sample: Software Testing Help
var studentName = 'Sajeesh Sreeni'; // String 'Sajeesh Sreeni' stored in studentName var studentName; // varaible is decalred again document.getElementById('studentName').innerHTML = 'Redeclaring the varaible will not lose the value!.
' +'Here the value in studentName is '+ studentName;
Answ 이다 아르 자형 :이 코드는 오류를 생성하지 않습니다. 변수의 재 선언은 JavaScript에서 허용됩니다. 따라서 여기에서 명령문을 실행 한 후 변수 값이 손실되지 않습니다.
Q # 4) 다음 코드 스 니펫에서 출력을 예측하거나 오류가 발생하는 경우; 오류를 설명해주세요.
Sample: Software Testing Help
var sum_first =50+20+' Sajeesh Sreeni '; var sum_second= ' Sajeesh Sreeni '+50+20; document.getElementById('sum_first').innerHTML = 'The first varaible sum is :'+sum_first + '
The second varaible sum is :'+sum_second ;
대답: 이 코드는 오류를 표시하지 않습니다!
코드 조각의 출력 :
첫 번째 변수 합계 : 70 Sajeesh Sreeni
두 번째 변수 합계 : Sajeesh Sreeni 5020
Q # 5) test () 메서드와 exec () 메서드의 차이점은 무엇입니까?
대답: test ()와 exec ()는 모두 RegExp 표현식 메서드입니다.
사용하여 테스트 () , 주어진 패턴에 대한 문자열을 검색합니다. 일치하는 텍스트를 찾으면 부울 값 'true'를 반환하거나 그렇지 않으면 'false'를 반환합니다.
하지만 exec () , 주어진 패턴에 대한 문자열을 검색합니다. 일치하는 텍스트를 찾으면 패턴 자체를 반환하거나 'null'값을 반환합니다.
Q # 6) JavaScript의 장점은 무엇입니까?
대답: 이 스크립팅 언어는 아래와 같이 많은 장점이 있습니다.
- 경량 : 구현하기 쉽습니다. 메모리 공간이 적습니다.
- 해석 됨 : 통역 언어입니다. 명령은 직접 실행됩니다.
- 객체 지향 : 객체 지향 언어입니다.
- 일류 기능 : JavaScript에서는 함수를 값으로 사용할 수 있습니다.
- 스크립팅 언어 : 런타임 환경에 대한 지침이 작성되는 언어입니다.
Q # 7) 다음 코드 스 니펫에서 출력을 예측하거나 오류가 발생하는 경우; 오류를 설명해주세요.
Sample: Software Testing Help
Example Const Variable
const first_num; first_num =1000; document.getElementById('display').innerHTML = 'First Number:'+ first_num;
대답: 'const'변수 'first_num'은 값으로 초기화되지 않으므로 코드에서 구문 오류가 발생합니다.
코드 조각의 출력 :
오류 : 잡히지 않은 구문 오류 : const 선언에 이니셜 라이저가 없습니다.
Q # 8) 디버깅을 위해 브라우저를 사용한 적이 있습니까? 그렇다면 어떻게 수행됩니까?
대답: 키보드에서‘F12’키를 눌러 브라우저에서 디버깅을 활성화 할 수 있습니다. 결과를 보려면 '콘솔'탭을 선택하십시오.
PC 용 최고의 무료 mp3 다운로더
콘솔에서 중단 점을 설정하고 변수의 값을 볼 수 있습니다. 모든 최신 브라우저에는 내장 디버거가 있습니다. (예를 들면 : Chrome, Firefox, Opera 및 Safari ) . 이 기능은 켜고 끌 수 있습니다.
Q # 9) 자바 스크립트 코드에서 '디버거'키워드의 사용은 무엇입니까?
대답: 코드에서 'debugger'키워드를 사용하는 것은 디버거에서 중단 점을 사용하는 것과 같습니다.
코드를 테스트하려면 브라우저에서 디버거를 활성화해야합니다. 브라우저에서 디버깅을 사용하지 않으면 코드가 작동하지 않습니다. 코드를 디버깅하는 동안 나머지 부분은 다음 줄로 이동하기 전에 실행을 중지해야합니다.
Q # 10) 오류 이름 값의 고유 한 유형은 무엇입니까?
대답: 'Error Name'속성에는 6 가지 유형의 값이 있습니다.
오류 | 기술 |
---|---|
범위 오류 | 범위 밖의 숫자를 사용하면이 오류가 발생합니다. |
구문 오류 | 이 오류는 잘못된 구문을 사용할 때 발생합니다. (Ques No : 7 참조) |
참조 오류 | 선언되지 않은 변수를 사용하면이 오류가 발생합니다. Ques No : 19를 참조하십시오. |
평가 오류 | eval ()의 오류로 인해 발생합니다. 새 자바 스크립트 버전에는이 오류가 없습니다. |
유형 오류 | 값이 사용 된 유형의 범위를 벗어났습니다. Ques No : 22를 참조하십시오 |
URI 오류 | 불법 문자 사용으로 인해. |
Q # 11) JavaScript Hoisting이란 무엇입니까?
대답: 'JavaScript Hoisting'방법을 사용하는 동안 인터프리터가 코드를 실행하면 모든 변수가 원래 / current 범위의 맨 위로 올라갑니다. 코드 내부에 변수가 선언되어 있으면 맨 위로 가져옵니다.
이 메서드는 변수 선언에만 적용 할 수 있으며 변수 초기화에는 적용 할 수 없습니다. 기능 설명은 상단에 올리지 않는 반면, 기능은 상단에 올립니다.
기본적으로 코드 내에서 변수를 선언 한 위치는 그다지 중요하지 않습니다.
Q # 12) 자바 스크립트 '엄격 모드'란 무엇입니까?
대답: '엄격 모드'는 제한된 자바 스크립트 변형입니다. 일반적으로이 언어는 오류를 던지는 데 '그다지 엄격하지 않습니다'. 그러나 '엄격 모드'에서는 모든 유형의 오류가 발생합니다. 심지어 자동 오류도 발생합니다. 따라서 디버깅 프로세스가 더 쉬워집니다. 그리고 개발자가 실수 할 가능성이 줄어 듭니다.
Q # 13) 자바 스크립트 '엄격 모드'의 특징은 무엇입니까?
답변 : 다음은 '엄격 모드'의 특성입니다.
- '엄격 모드'는 개발자가 전역 변수를 생성하지 못하도록합니다.
- 개발자는 중복 매개 변수를 사용할 수 없습니다.
- 엄격 모드는 JavaScript 키워드를 변수 이름 또는 함수 이름으로 사용하는 것을 제한합니다.
- Strict 모드는 스크립트 시작 부분에 'use strict'키워드로 선언됩니다.
- 모든 브라우저는 엄격 모드를 지원합니다.
Q # 14) Self Invoking 함수 란?
대답: '즉시 호출 된 함수 표현식'또는 '자체 실행 익명 함수'라고도합니다. 이러한 함수는 코드에서 자동으로 호출되므로 '자체 호출 함수'로 이름이 지정됩니다.
일반적으로 함수를 정의하고 호출하지만 설명 된 곳에서 자동으로 함수를 실행하고 다시 호출하지 않으려면 익명 함수를 사용할 수 있습니다. 그리고 이러한 유형의 기능에는 이름이 없습니다.
Q # 15)‘자기 호출 함수’의 구문은 무엇입니까? 예를 들어?
대답:
Self-Invoking 함수의 구문 :
(function () { return () } () ;
여기서 구문의 마지막‘()’괄호는 함수 표현식임을 나타냅니다.
자체 호출 함수의 예 :
Sample: Software Testing Help
Example for Self-Invoking
(function (){ elem = document.getElementById('dispaly_num'); elem.innerHTML = 'This function has no name.
It is called automatically'; }());
여기서 익명 함수는 코드 조각에서 자동으로 호출됩니다.
이 함수는 텍스트 속성을 설정하는 데 사용됩니다.
ID가‘display_num’인 태그입니다.
코드 조각의 출력 :
이 함수에는 이름이 없습니다.
자동으로 호출됩니다
Q # 16) 다음 코드 스 니펫에서 출력을 예측하거나 오류가 발생하는 경우; 오류를 설명해주세요.
대답:
Sample : Software Testing Help
Example for JavaScript Hoisting
first_num = 100; // Assign value 100 to num elem = document.getElementById('dispaly_num'); elem.innerHTML = ' Here the variable first_num: '+first_num +' is taken to the top
' + 'Since second variable is initialised the value is not taken to the top and it's value is ' + ''+second_num +' “; var first_num; // declaration only var second_num =200; // Initialised the variable
앞서 설명한 Q # 11을 참조하십시오. 인터프리터는 초기화를 제외하고 선언 된 모든 변수를 맨 위로 가져갑니다.
이와 같이 'first_num'변수는 맨 위로 가져 가고 'second_num'변수는 값으로 초기화되므로 맨 위로 가져 가지 않습니다. 이 코드는 오류를 발생시키지 않습니다. 그러나‘second_num’의 값은 정의되지 않았습니다.
코드 조각의 출력 :
여기서 first_num : 100 변수가 맨 위로 이동합니다.
두 번째 변수가 초기화되었으므로 값은 맨 위로 가져 가지 않고 값이 정의되지 않습니다.
Q # 17) 이전 브라우저 버전에서 JavaScript 코드를 숨길 필요가 있다면 어떻게 수행 하시겠습니까?
대답: 코드에서 태그 뒤에‘
이렇게하면 브라우저가 이전 버전 인 경우 JavaScript 코드를 실행할 수 없습니다. 또한 종료 태그 뒤에‘// –>’HTML 태그를 추가합니다.
이 방법은 호환성 문제 및 UI 문제를 어느 정도 해결하는 데 도움이됩니다.
Sample: Software Testing Help
여기서는 이전 버전의 브라우저를 사용하지 않기 때문에 내 브라우저에서 태그 뒤의 코드 스 니펫이 실행됩니다.
코드 조각의 출력 :
여기서는 이전 버전의 브라우저를 사용하지 않습니다.
따라서 코드는 내 브라우저에서 작동합니다.
Q # 18) 다음 코드 스 니펫에서 출력을 예측해 주실 수 있나요? 아니면 오류가 발생하면 오류를 설명해주세요.
Sample: Software Testing Help
Find the output
var first_num =500; var result= function(){ document.getElementById('display').innerHTML = first_num; var first_num =1000; } result();
대답: 위의 코드에서 'first_num'변수의 값은 1000이 아닙니다.
JavaScript에서는 변수 초기화를위한 게양이 없습니다. 함수‘result ()’는 함수 내에서 선언 된대로‘first_num’지역 변수를 선택합니다. 변수를 사용한 후 선언하므로 'first_num'의 값은 정의되지 않습니다.
코드 조각의 출력 :
찾으시는 주소가 없습니다
Q # 19)‘var’키워드와‘let’키워드의 차이점은 무엇입니까?
답변 : 차이점은 다음과 같습니다.
어디 | 허락하다 |
---|---|
'var'키워드는 초기 Stage 자체부터 JavaScript 코드에 도입되었습니다. | ‘let’키워드는 2015 년에만 도입되었습니다. |
'Var'키워드에는 기능 범위가 있습니다. var로 정의 된 변수는 함수 내 어디에서나 사용할 수 있습니다. | 'let'키워드로 선언 된 변수는 해당 블록에서만 범위를 갖습니다. 자, 블록 범위가 있습니다. |
'var'로 선언 된 변수가 호이스트됩니다. | 'let'으로 선언 된 변수는 hoisted |
Q # 20) 다음 코드 스 니펫에서 출력을 예측하거나 오류가 발생하는 경우; 오류를 설명해주세요.
Sample: Software Testing Help
Find the output
if(true){ var first_num =1000; let second_num=500; } document.getElementById('display_first').innerHTML = 'First Number:' + first_num; document.getElementById('display_second').innerHTML = 'Second Number:' + second_num;
대답:
코드 조각의 출력 :
먼저 번호 : 1000
우리는 얻을 것이다 '먼저 번호 : 1000 ' 출력으로. 'Uncaught Reference Error'오류도 있습니다.
코드 스 니펫에서‘second_num’의 범위는 if () 블록에만 있습니다. 개발자가 블록 외부의 값에 액세스하려고하면 'Uncaught Reference error'가 발생합니다.
포착되지 않은 참조 오류 : second_num이 정의되지 않았습니다.
Q # 21)‘==’와‘===’의 차이점은 무엇입니까?
대답: ‘==’및‘===’모두 비교 연산자입니다.
‘==’연산자 | ‘===’연산자 |
---|---|
그것은 '유형 변환 연산자'로 알려져 있습니다. | '엄격한 평등 연산자'로 알려져 있습니다. |
값을 비교하고 유형을 비교하지 않습니다. | 값과 유형을 모두 비교합니다. |
Q # 22)‘let’과‘const’의 차이점은 무엇입니까?
답변 : 차이점은 다음과 같습니다.
허락하다 | const |
---|---|
‘let’을 사용하여 변수 값을 몇 번이고 변경할 수 있습니다. | 'const'를 사용하여 값을 처음 할당 한 후에는 값을 다시 정의 할 수 없습니다. |
코드 고려 { let first_num = 1; first_num = 2; 문서. 쓰기 (first_num); } 여기서 코드는 first_num 값의 변경이 가능하므로 출력을 제공합니다. | 코드 고려 { const second_num = 1; second_num = 2; 문서. 쓰기 (second_num); } 여기서는 'second_num'에 두 번째 값이 할당되어 있으므로 코드에서 오류가 발생합니다. |
Q # 23) 다음 코드 스 니펫에서 출력을 예측하거나 오류가 발생하는 경우; 오류를 설명해주세요.
Sample: Software Testing Help
Example of 'Const' Keyword
let first_num =500; first_num=501; document.getElementById('display_first').innerHTML = 'First Number:'+ first_num ; const second_num =1000; second_num=1001; document.getElementById('display_second').innerHTML = 'Second Number :'+second_num;
대답: 더 읽기 전에 Q # 21을 참조하십시오.
코드 조각의 출력 :
첫 번째 번호 : 501
또한 'const'변수의 값을 변경하려고 할 때 코드를 실행하는 동안 오류가 발생합니다.
오류: 포착되지 않은 TypeError : 상수 변수에 할당.
Q # 24) 'null'과 'undefined'의 차이점은 무엇입니까?
대답: 두 키워드 모두 빈 값을 나타냅니다. .
차이점은 다음과 같습니다.
- 'undefined'에서는 변수를 정의하지만 해당 변수에 값을 할당하지 않습니다. 반면 'null'에서는 변수를 정의하고 변수에 'null'값을 할당합니다.
- 유형 (정의되지 않음) 및 유형 (null) 개체.
Q # 25)‘함수 선언’과‘함수 표현’의 차이점은 무엇인가요?
대답: 예를 들어 설명 할 수 있습니다.
Sample: Software Testing Help
Example Function Declaration
function add(first_num,second_num){ return first_num + second_num; } var substract = function sub(first_num,second_num){ return first_num - second_num; } var first_num=700; var second_num=300; document.getElementById('display_add').innerHTML = 'Sum of the number is:' + add(first_num,second_num); document.getElementById('display_sub').innerHTML = 'Difference of the number is:' + substract(first_num,second_num);
예제에서 볼 수 있듯이 add ()는 함수 선언이고 subtract ()는 함수 표현식입니다. 함수 선언의 구문은 변수에 저장되는 함수와 같습니다.
함수 선언은 호이스트되지만 함수 표현식은 호이스트되지 않습니다.
Q # 26)‘settimeout ()’이 무엇인가요?
대답: 예를 들어 더 잘 설명 될 것입니다.
코드 스 니펫 고려
Console.log (‘First Line’); Console.log (‘Second Line’); Console.log (‘Third Line’);
코드 조각의 출력 :
첫 줄
두 번째 줄
세 번째 줄
이제 settimeout () 메서드를 도입하고 동일한 코드 세트를 그 안에 래핑합니다.
Settimeout(function() { Console.log (‘First Line’); },0); Console.log (‘Second Line’); Console.log (‘Third Line’);
코드 조각의 출력 :
두 번째 줄
세 번째 줄
첫 줄
settimeout ()의 도입으로 프로세스는 비동기가됩니다. 스택에 배치 될 첫 번째 명령문은 Console.log (‘Second Line’) 및 Console.log (‘Third Line’)이며 먼저 실행됩니다. 스택의 모든 것이 먼저 완료 될 때까지 기다려야합니다.
'0'이 타임 아웃 기간이지만 바로 실행된다는 의미는 아닙니다.
Q # 27) 클로저 란 무엇이며 어떻게 사용합니까?
대답: 클로저는 내부 기능입니다. 함수의 외부 변수에 액세스 할 수 있습니다. Closure에서 function_1에는 'A'값을 반환하고 function_1도 값을 반환하는 또 다른 function_2가 있습니다. ‘B’라고 말해요.
여기서 sum ()은 외부 함수이고 add ()는 내부 함수이며‘first_num’‘second_num’및‘third_num’을 포함한 모든 변수에 액세스 할 수 있습니다. 외부 함수는 내부 함수 add ()를 호출합니다.
// To find the sum of two numbers using closure method function sum( first_num, second_num ) { var sumStr= 600; function add(first_num , second_num) { return (sumStr + (first_num + second_num)); } return add(); } document.write('Result is :'+ sum(150,350));
코드 조각의 출력 :
결과 : 500
Q # 28) 다음 코드 스 니펫에서 출력을 예측하거나 오류가 발생하는 경우; 오류를 설명해주세요.
Sample: Software Testing Help
Example Assignmnet Statement
var x =500; let y,z,p,q; q=200; if(true){ x=y=z=p=q; document.getElementById('display').innerHTML = 'x='+ x + '
y :'+ y +'
z :'+ z+'
p :'+ p+'
q :'+ q; }
대답: 할당 문은 오른쪽에서 왼쪽으로 간주됩니다.
코드 조각의 출력 :
x = 200
및 : 200
와 함께 : 200
p : 200
q : 200
Q # 29) 코드 조각이 test () 메서드와 exec () 메서드의 차이점을 보여주는 예를 제공 할 수 있습니까?
Sample : Software Testing Help
Example for exec() methods
Click the button to search for a pattern 'How“ in the given string 'Hello. Good Morning. How do you feel today?'
If the 'How' is found, the method will return the pattern
Search function searchTxt() { var str = 'Hello. Good Morning. How do you feel today?'; var search_patt = new RegExp('How'); var res = search_patt.exec(str); document.getElementById('result').innerHTML ='Found the pattern :'+ res; }
대답: 이것은 test () 및 exec () 메소드의 예입니다. 자세한 내용은 Ques No : 5를 참조하십시오.
코드 조각의 출력 :
exec ()를 사용하여 패턴을 찾았습니다. 방법
test ()를 사용하면 결과는 다음과 같습니다. true
Q # 30) JavaScript Hoisting을 보여주는 예를 들어 주시겠습니까?
대답:
Sample: Software Testing Help
Example for JavaScript Hoisting
num = 100; // Assign value 100 to num elem = document.getElementById('dispaly_num'); elem.innerHTML = 'Here the variables are used before declaring it.' + '
The value of the variable is ' + num; var num; // Declare the varaible
자세한 내용은 Q # 11을 참조하십시오.
여기서 변수 'num'은 선언하기 전에 사용됩니다. 그러나 JavaScript Hoisting은 그것을 허용합니다.
코드 조각의 출력 :
여기서 변수는 선언하기 전에 사용됩니다.
변수 값은 100입니다.
Q # 31) 자바 스크립트 코드에서 '디버거'키워드를 사용한 예를 들어 주시겠습니까?
대답:
Sample: Software Testing Help
Example for debug keyword
Here to test the code, debugger must be enabled for the browser,
during debugging the code below should stop executing before it goes to the next line.
var a = 1000; var b = 500; var sum = a + b; document.getElementById('wait_result').innerHTML = 'Adding numbers......
Select 'Resume Script execution' to continue: '; debugger; document.getElementById('show_result').innerHTML = 'Sum of the numbers : '+sum;
노트 : 브라우저에서 코드를 테스트하려면 디버거를 활성화해야합니다. 자세한 내용은 Ques No : 5를 참조하십시오.
디버깅 키워드의 예입니다 (사용 된 브라우저 : Chrome)
코드 조각의 출력 :
여기에서 코드를 테스트하려면 브라우저에서 디버거를 활성화해야합니다.
디버깅하는 동안 아래 코드는 다음 줄로 이동하기 전에 실행을 중지해야합니다.
번호 추가 중…
계속하려면 '스크립트 실행 다시 시작'을 선택하십시오.
숫자의 합 : 1500
Q # 32) 다음 코드 스 니펫에서 출력을 예측하거나 오류가 발생하는 경우; 오류를 설명해주세요.
Sample: Software Testing Help
Example Type Converting
var first_num =500; var first_name='500'; if(first_num == first_name){ document.getElementById('display').innerHTML = 'Comparison will return 'true' by Type converting Operator '; }
대답: 코드 고려
If (‘100’==100) { document. write (“It’s a Type Converting Operator”); } Here typeof(‘100’) is string typeof(100) is number the ‘==’ operator will convert the number type, which is on the right side of the operator to string and compare both values
코드 조각의 출력 :
비교는 유형 변환 연산자에 의해 'true'를 반환합니다.
Q # 33) 자바와 자바 스크립트는 비슷합니까? 그렇지 않다면 Java와 JavaScript의 차이점은 무엇입니까?
대답:
Sl 아니오 | 자바 | 자바 스크립트 |
---|---|---|
1 | Java는 범용 프로그래밍 언어입니다. | JavaScript는 고수준의 해석 된 스크립팅 언어입니다. |
두 | Java는 OOPS (Object-Oriented Programming) 개념을 기반으로합니다. | JavaScript는 객체 지향적이며 기능적인 스크립팅입니다. |
삼 | JVM (Java Virtual Machine) 또는 브라우저에서 실행됩니다. | 브라우저에서만 실행됩니다. |
4 | Java 코드는 Java 클래스 파일로 컴파일되어야합니다. | JavaScript에는 컴파일 단계가 없습니다. 대신 브라우저의 인터프리터가 자바 스크립트 코드를 읽고 각 줄을 해석 한 다음 실행합니다. |
간단히 말해서, 이러한 언어는 서로 전혀 연결되거나 종속되지 않습니다.
Q # 34) JavaScript가 지원하는 데이터 유형은 무엇입니까?
대답: JavaScript는 다음을 지원합니다 일곱 프리미티브 데이터 유형 및 목적 :
(i) 부울 : 이는 true 또는 false의 두 값만 가질 수있는 논리적 데이터 유형입니다. typeof 연산자를 사용하여 'true'또는 'false'의 데이터 유형을 확인하면 부울 값을 반환합니다.
예를 들어 typeof (true) // 부울 반환
두 변수를 비교하는 데 부울 값을 사용할 수 있습니다.
예를 들어
var x = 2; var y = 3; x==y //returns false
부울 값을 사용하여 조건을 확인할 수도 있습니다.
예를 들어
var x = 2; var y = 3; If(x위의 조건 'x Boolean () 함수를 사용하여 부울 변수를 만들 수 있습니다.
var myvar = ‘Hi'; Boolean(myvar); // This returns true because the 'myvar' value exists
또한 다음과 같이 new 연산자를 사용하여 Boolean 개체를 만들 수 있습니다.
var myobj = new Boolean(true);
(Ii) 널 :이것은 하나의 값인 'null'자체로만 표시되는 데이터 유형입니다. null 값은 값이 없음을 의미합니다.
예를 들어
var x = null; console.log(x);// This returns null
typeof 연산자를 사용하여 데이터 유형을 확인하면 다음과 같은 결과를 얻습니다.
typeof(x); // This returns object. type of a null value is an object, not null.
(iii) 정의되지 않음 : 이 데이터 유형은 정의되지 않은 변수를 의미합니다. 변수가 선언되었지만 값이 포함되어 있지 않습니다.
예를 들어
var x; console.log(x); // This returns undefined x=10;//Assign value to x console.log(x); // This returns 10
변수‘a’가 선언되었지만 아직 값이 할당되지 않았습니다.
다음에 값을 할당 할 수 있습니다.
(iv) 번호 : 이 데이터 유형은 부동 소수점 값, 정수, 지수 값,‘NaN’또는‘무한대’일 수 있습니다.
예를 들어
var x=10; // This is an integer value var y=10.5; // decimal value var c = 10e5 // an exponential value ‘xyz’ * 10; //This returns NaN 10/0; // This returns infinity
Number () 함수를 사용하여 숫자 리터럴을 만들 수 있습니다.
var x = Number(10); console.log(x);// This returns 10
또한 다음과 같이 'new'연산자를 사용하여 숫자 개체를 만들 수 있습니다.
var x= new Number(10); console.log(x); // This returns 10
(v) BigInt : 이것은 임의의 정밀도로 정수를 나타낼 수있는 숫자 프리미티브입니다. BigInt는 정수 끝에 n을 추가하여 생성됩니다.
예를 들어
const x = 15n;
숫자는 BigInt (number) 함수를 사용하여 BigInt로 변환 할 수 있습니다.
const x = 251; const y = BigInt(x); y === 251n // returns true
(vi) 문자열 : 이 데이터 유형은 텍스트 데이터를 나타내는 데 사용됩니다.
예를 들어
var strVar1 = “Hi,how are you?”; var strVar2 = ‘Hi,how are you?’;
다음과 같이 String () 함수를 사용하여 새 문자열을 만들 수도 있습니다.
var strVar3 = String(‘Hi,how are you?’); // This creates a string literal with value ‘Hi,how are you?’
String () 함수는 문자열이 아닌 값을 문자열로 변환하는데도 사용됩니다.
String(150); // This statement will create a string ‘150’
문자열은 다음을 사용하여 만들 수도 있습니다. '새로운' 운영자
var strVar4 = new String(“Hi,how are you?”); // This is a string object console.log(strVar4); // This will return the string ‘Hi,how are you?’
자바 스크립트 문자열은 변경할 수 없습니다. 즉, 문자열이 생성되면 수정할 수 없습니다. 그러나 원래 문자열에 대한 작업을 사용하여 다른 문자열을 만들 수 있습니다.
예를 들어
- 연결 연산자 (+)를 사용하여 두 문자열을 연결하거나 String.concat () .
- 사용하여 부분 문자열을 가져옴으로써 String.substr () .
(vii) 기호 : 이것은 고유하고 변경할 수없는 기본 값이며 Object 속성의 키로 사용됩니다. ECMAScript 2015에서 JavaScript의 새로운 기호
에 상징 값은 고유 식별자를 나타냅니다.
예를 들어
var symVar1 = Symbol('Symbol1'); let symVar2 = Symbol('Symbol1'); console.log(symVar1 === symVar2); // This returns 'false'.
따라서 많은 기호가 동일한 설명으로 생성되지만 값은 다릅니다.
기호는 자동 변환 할 수 없습니다.
예를 들어
var symVar1 = Symbol('Symbol1'); alert(symVar1); // This gives TypeError: Cannot convert a Symbol value to a string
이것은 다음을 사용하여 작업 할 수 있습니다. toString () 다음과 같이 :
alert(symVar1.toString()); // Symbol(symVar1), this works
개체 데이터 유형
객체는 식별자가 참조하는 메모리의 값입니다.
객체는 데이터와 함께 작업하기위한 명령과 데이터가있는 데이터 구조를 나타냅니다. 객체는 때때로 실제 사물을 지칭합니다. 예를 들어 직원이나 자동차.
예를 들어
JavaScript 객체에서 값은 다음과 같이 작성됩니다. 이름 : 값 아래와 같이 쌍 :
var car1 = {type:'BMW', model:” The BMW X5“, color:'white'}; An object definition can span multiple lines as follows: var car1 = { type:'BMW', model: 'The BMW X5', color:'white' };
그만큼 이름 : 값 쌍이 불린다 속성 . 예를 들어 ‘유형’은 속성이고‘BMW’는 속성의 값입니다.
objectName.propertyName을 사용하여 속성 값에 액세스합니다.
또는 objectName ( 'propertyName')
예를 들어 car1.type 또는 car1 ( 'type'),‘BMW’반환
객체 car1의 값은 다음과 같이 변경할 수 있습니다.
car1.type = “Audi”;
지금,
console.log(car1) ;//This will return {type:'Audi', model:” The BMW X5“ , color:'white'};
Q # 35) JavaScript는 대소 문자를 구분하는 언어입니까?
대답: 예, JavaScript는 대소 문자를 구분하는 언어입니다. 이것의 의미는 언어, 변수, 함수 이름 및 항상 일관된 대문자 또는 소문자로 입력해야하는 기타 식별자의 키워드입니다.
예를 들어 myVar는 myvar와 다른 변수입니다.
Q # 36) 피연산자가 어떤 데이터 유형에 속하는지 확인하는 방법은 무엇입니까?
대답: 피연산자 데이터 유형은 typeof 연산자를 사용하여 찾을 수 있습니다.
피연산자의 유형을 나타내는 문자열을 반환합니다.
통사론 : typeof 피연산자
typeof (피연산자)
피연산자는 모든 변수, 개체 또는 함수가 될 수 있습니다.
예를 들어
console.log (typeof 10);// expected output: 'number' console.log (typeof 'hello');// expected output: 'string' console.log (typeof);//expected output: //'undefined';
Q # 37) 왜 자바 스크립트가 느슨한 형식이나 동적 언어로 호출 되나요?
대답: JavaScript 변수는 어떤 값 유형과도 직접 연결되지 않고 모든 유형의 값을 할당하고 다시 할당 할 수 있기 때문에 JavaScript는 느슨한 유형 또는 동적 언어로 호출됩니다.
예를 들어
var myvar = ‘abc’; // myvar is string myvar =true; // myvar is now a boolean myvar = 10; // myvar is now a number
Q # 38) JavaScript에서 null은 무엇입니까?
대답: null 값은 개체 값이 의도적으로 없음을 나타냅니다.
이것은 자바 스크립트의 기본 값 중 하나입니다.
예를 들어
Var myvar = null; console.log(myvar); //This will print null
Q # 39) NaN이란?
답변 : NaN Not-A-Number를 나타내는 전역 개체의 속성입니다.
예를 들어
function checkValue(x) { if (isNaN(x)) { return NaN; } return x; } console.log(checkValue ('5')); //expected output: '5' console.log(checkValue (‘Any value’)); //expected output: NaN
Q # 40) 문자열을 배열 항목으로 분할하는 방법은 무엇입니까?
대답: JavaScript split () 메서드를 사용하여 문자열을 배열로 분할 할 수 있습니다. 이 메서드는 문자열을 구분할 문자 인 단일 매개 변수를 사용하고 구분 기호 사이의 하위 문자열을 배열의 항목으로 반환합니다.
예를 들어
myDaysString = ''Sunday,Monday,Tuesday,Wednesday”; String can be split at comma as below: myDaysArray= myDaysString.split(','); console.log(myDaysArray(0)); //output is the first item in the array i.e. Sunday console.log (myDaysArray(myDaysArray.length-1)); //output is the last //item in the array i.e. Wednesday
Q # 41) 배열 항목을 문자열로 결합하는 방법은 무엇입니까?
대답: join () 메서드를 사용하여 배열 항목을 결합 할 수 있습니다.
예를 들어
var myDaysArray= ('Sunday','Monday','Tuesday',”Wednesday”);
배열 항목은 다음과 같이 문자열로 결합됩니다.
myDaysString= myDaysArray.join(','); console.log(myDaysString);//output is joined string i.e.//Sunday,Monday,Tuesday,Wednesday
Q # 42) JavaScript에는 어떤 오류가 있습니까?
대답: 다음은 두 가지 유형의 오류입니다.
- 구문 오류 : 프로그램이 전혀 실행되지 않거나 도중에 작동을 중지하는 코드의 철자 오류 또는 오타입니다. 일반적으로 오류 메시지도 제공됩니다.
- 논리 오류 : 구문은 정확하지만 논리 또는 코드가 정확하지 않은 경우 오류입니다. 여기서 프로그램은 오류없이 성공적으로 실행됩니다. 그러나 출력 결과가 올바르지 않습니다. 이러한 프로그램은 논리 오류에 대한 오류 메시지를 제공하지 않으므로 구문 오류보다 수정하기가 더 어렵습니다.
Q # 43) 효과적인 하나의 조건에 대한 많은 선택을 처리하는 방법 방법?
대답: 이것은 switch 문을 사용하여 수행됩니다.
예를 들어
switch (expression) { case choice1: code to be run break; case choice2: code to be run break; : : default: code to run if there is no case match }
Q # 44) 삼항 연산자는 무엇입니까?
대답: 삼항 또는 조건부는 참 또는 거짓 테스트를 기반으로 두 옵션 중에서 빠르게 선택하는 데 사용되는 연산자입니다.
이것은 참 / 거짓 조건 사이에서 선택되는 두 가지 선택이있을 때 forif… else 블록으로 사용할 수 있습니다.
예를 들어
if (some condition) result = ‘result 1’; else result = ‘result 2’;
다음과 같이 단일 명령문에서 삼항 연산자를 사용하여 동일한 코드를 작성할 수 있습니다.
결과 = (조건)?‘결과 1’:‘결과 2’;
Q # 45) 사람이라는 물체가 있다고 가정 해 보겠습니다.
const 사람 = {
이름 : {
첫 번째 :‘밥’,
마지막 :‘Smith’
}
};
다음 중 'first'개체 속성에 액세스하는 올바른 방법은 무엇입니까?
- person.name.first,또는
- person (‘name’) (‘first’)?
대답: 둘 다 올바른 방법입니다. 즉, person.name.first와 같은 점을 사용하거나 person (‘name’) (‘first’)와 같은 대괄호 표기법을 사용합니다.
Q # 46)“이것”이 무엇인가요?
대답: 'this'키워드는 코드가 내부에 작성되는 현재 개체를 나타냅니다.
이는 구성원의 컨텍스트가 변경 될 때 올바른 값이 사용되도록하기위한 것입니다.
예를 들어 두 개의 다른 인스턴스가 있습니다. 사람 이름이 다르며 다음과 같이 경고에 자신의 이름을 인쇄해야합니다.
const person1 = { name: 'Tom', greeting: function() { alert('Good Morning! I am ' + this.name + '.'); } }
여기에서 출력은 좋은 아침! 나는‘톰’입니다
const person2 = { name: 'Jerry', greeting: function() { alert('Good Morning! I am ' + this.name + '.'); } }
여기에서 출력은 좋은 아침! 저는‘제리’입니다
Q # 47) 익명 기능이란?
대답: 익명 함수는 이름이없는 함수이며 자체적으로 아무것도 수행하지 않습니다. 이들은 일반적으로 이벤트 핸들러와 함께 사용됩니다.
예를 들어 다음 코드에서 익명 함수 코드 즉, alert (‘Hi’); 관련 버튼을 클릭하면 실행됩니다.
var myButton = document.querySelector('button'); myButton.onclick = function() { alert('Hi'); }
익명 함수를 변수 값에 할당 할 수도 있습니다.
예를 들어
var myVar = function() { alert('Hi'); }
이 함수는 다음을 사용하여 호출 할 수 있습니다.
myVar();
결론
자바 스크립트 코드, CSS 및 HTML을 별도의 외부 'js'파일로 저장하는 것이 좋습니다. 코딩 부분과 HTML 부분을 분리하면 더 쉽게 읽고 작업 할 수 있습니다. 또한 여러 개발자가이 방법을 동시에 사용하기가 더 쉽다는 것을 알게됩니다.
JavaScript 코드는 유지 관리가 쉽습니다. 동일한 JavaScript 코드 세트를 여러 페이지에서 사용할 수 있습니다. 외부 자바 스크립트 코드를 사용하고 코드를 변경해야하는 경우 한 곳에서 변경해야합니다. 그래서 우리는 코드를 재사용하고 훨씬 더 쉽게 유지할 수 있습니다.
추천 읽기 = >> TypeScript 대 JavaScript
JavaScript 코드의 성능이 더 좋습니다. 외부 JavaScript 파일은 브라우저에서 캐시되므로 페이지로드 속도가 빨라집니다.
JavaScript 인터뷰 질문 및 답변이 도움이 되었기를 바랍니다. 가능한 한 많은 질문을 연습하고 자신감을 가지십시오.
추천 도서