내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
프론트 엔드 JS 인터뷰에서 자주 묻는 질문은 기본 구문, 데이터 구조 및 알고리즘, DOM 작업, 비동기 프로그래밍, 모듈화, 프레임워크/라이브러리 사용 등을 포함한 다양한 측면을 다룹니다. 다음은 몇 가지 일반적인 프런트엔드 JS 인터뷰 질문과 이에 대한 간략한 분석입니다.
var
、let
、const
차이점이 뭐야? 범위와 수명주기는 무엇입니까?i++
그리고++i
차이점이 뭐야?break
그리고continue
루프에서 사용될 때 어떻게 다릅니 까?push
、pop
、shift
、unshift
、splice
、slice
、join
、sort
기다리다)JSON.parse(JSON.stringify(obj))
, 확산 연산자, 재귀 및 기타 방법)Promise.all
그리고Promise.race
?import
/export
), 그 장점은 무엇입니까?this
다양한 시나리오에서 규칙과 성능을 지적합니다.샘플 질문: JavaScript의 프로토타입 체인 메커니즘을 설명해주세요.
분석하다:
__proto__
속성(ES6에서 권장됨)Object.getPrototypeOf()
메서드), 이 속성은 생성자의prototype
속성.Object.prototype
)。null
, 더 이상 찾을 프로토타입 개체가 없음을 나타냅니다.1. JavaScript의 데이터 유형은 무엇입니까? 그들 사이의 차이점은 무엇입니까?
답변:
JavaScript에는 기본 데이터 유형(기본 유형)과 참조 데이터 유형(참조 유형)을 포함하여 8가지 데이터 유형이 있습니다.
기본 데이터 유형과 참조 데이터 유형의 주요 차이점은 저장 및 할당 방법입니다. 기본 데이터 유형의 값은 스택 메모리에 저장되고 할당 중에 값이 직접 복사되는 반면 참조 데이터 유형의 값은 힙 메모리에 저장되고 스택 메모리는 값에 대한 참조(즉, 주소)를 저장합니다. 할당 중에 복사되는 힙 메모리는 참조입니다.
2. JavaScript의 범위와 폐쇄에 대해 이야기하시겠습니까?
답변:
범위 : 코드 블록 내 변수, 함수 등 식별자의 유효한 범위를 나타냅니다. JavaScript에는 주로 전역 범위와 로컬 범위(함수 범위, 블록 수준 범위 등 포함)의 두 가지 범위가 있습니다. 전역 범위의 변수는 스크립트 전체에서 볼 수 있는 반면, 로컬 범위의 변수는 해당 변수가 정의된 코드 블록 내에서만 액세스할 수 있습니다.
폐쇄 : 함수가 어휘 범위 밖에서 실행되더라도 함수가 어휘 범위를 기억하고 이에 액세스할 수 있음을 의미합니다. 클로저의 주요 용도는 개인 변수를 캡슐화하고 모듈을 만드는 것 등입니다. 클로저를 사용하면 함수가 함수 외부의 변수에 액세스하고 조작할 수 있으며 이러한 변수는 함수 외부에서도 쉽게 오염되거나 변경되지 않습니다.
3. JavaScript의 비동기 프로그래밍과 Promise에 대해 설명해주세요.
답변:
비동기 프로그래밍 : 코드의 실행 순서가 쓰기 순서에 따라 결정되는 것이 아니라 특정 조건(예: 네트워크 요청, 파일 읽기 및 쓰기 등)의 완료에 따라 결정된다는 의미입니다. JavaScript는 단일 스레드이지만 이벤트 루프와 콜백 함수를 통해 비동기 프로그래밍을 구현합니다.
약속하다 : ES6에 도입된 새로운 객체로, 비동기 작업을 처리하는 데 사용됩니다. Promise 객체는 지금은 완료되지 않을 수 있지만 나중에 완료(또는 실패)될 작업과 해당 결과 값을 나타냅니다. Promise에는 보류(진행 중), 이행(성공), 거부(실패)의 세 가지 상태가 있습니다. Promise를 통해 비동기식 코드를 동기식으로 작성할 수 있으므로 코드가 더욱 간결해지고 이해 및 유지 관리가 쉬워집니다.
4. JavaScript의 이벤트 버블링 및 이벤트 캡처에 대해 이야기하시겠습니까?
답변:
이벤트 버블링 : 이벤트가 대상 요소에서 시작된 다음 DOM 트리의 최상위 수준(즉, 문서 개체)까지 전파된다는 의미입니다. 이벤트 버블링 프로세스 중에 모든 수준의 DOM 요소가 이벤트를 캡처하고 처리할 수 있습니다.
이벤트 캡처 : 이벤트 버블링과 달리 이벤트 캡처는 DOM 트리의 맨 위에서 시작한 다음 대상 요소까지 전파됩니다. 이벤트 캡처 프로세스 중에 모든 수준의 DOM 요소가 이벤트를 캡처하고 처리할 수 있습니다.
JavaScript에서는 addEventListener 메소드의 세 번째 매개변수를 통해 이벤트 처리 방식, 즉 이벤트 버블링이나 이벤트 캡처를 사용할 수 있습니다. 세 번째 매개변수가 true이면 이벤트 캡처를 사용한다는 의미이고, false이거나 생략되면 이벤트 버블링을 사용한다는 의미입니다.
5. ES6+에는 어떤 새로운 기능이 도입되었나요?
답변:
ES6(ECMAScript 2015) 및 후속 버전에는 다음을 포함하되 이에 국한되지 않는 많은 새로운 기능이 도입되었습니다.