2021/10/22 12

10. 기술면접 - 자바스크립트 - 클로저 (Closure)

본 내용은 공부목적으로 MDN 문서를 보며 따라친 내용입니다 들어가기 앞 서 클로저는 함수와 함수가 선언된 어휘적 환경의 조합이다. 클로저를 이해하려면 자바스크립트가 어떻게 변수의 유효범위를 지정하는 지 렉시컬 스코프(Lexical Scoping) 을 이해 해야 한다 렉시컬 스코프 (Lexical Scoping) function init() { var name = "Mozilia"; // name은 init 에 의해 생성된 지역 변수 이다 function displayName() { // displayName() 은 내부 함수 이며, 클로저이다 alert(name); // 부모함수에서 선언된 변수를 사용한다 } displayName(); } init(); - init() 은 지역변수 name 과 함수 d..

09. 기술면접 - 자바스크립트 - 호이스팅 (Hoisting)

공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 호이스팅 (Hosting) - Hosting(끌어 올리다) 이란 선언한 함수와 변수를 해석기가 가장 상단에 있는 것 처럼 인식한다 - JS 해석기는 코드의 라인 순서와 관계 없이 함수 선언식(함수 표현식 X)과 변수를 위한 메모리 공간을 먼저 확보 - 따라서, function a() 와 var 는 코드의 최상단으로 끌어 올려진 것 (hostied) 처럼 보인다 function a() { return 10; } a(); // 5 function a() { return 5; } 순서대로 동작했다면 a 는 10이 출력되어야 하는 데, 해석기가 함수실행보다 선언을 먼저 인식하기 때문에 a는 재정의 되어서 5..

07. 기술면접 - 자바스크립트 - 구조 분해 할당 (Destructuring)

공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 개념 속성을 분해하여 원하는 속성만 변수로 담을 수 있다 객체 구조분해 (Object Destructuring) const A = { a: 1, b: 2 } const {a,b} = A console.log(a) // 1 console.log(b) // 2 const A = { a: 1, b: 2 } const {b, a} = A console.log(a) // 1 console.log(b) // 2 const A = { a: 1, b: 2 } const {c,d} = A console.log(c) // undefined console.log(d) // undefined 배열 구조분해 (Object ..

05. 기술면접 - 자바스크립트 - 향상된 객체 리터럴 (Enhanced Object Literals)

공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 향상된 객체 리터럴 (Enhanced Object Literals) = 축약기능 1. 객체의 속성을 메소드로 사용할 때 function 예약어를 생략하고 생성이 가능해졌다 // 객체 var dictionary = { words: 100, lookup: function() { // ES5 console.log("find words"); }, lookup() { // ES6 - ': funtion' 생략 console.log("find words"); } }; 2. 객체의 속성명과 값 명이 동일할 때 아래와 같이 축약 가능 var figures = 10; var dictionary = { // figur..

카테고리 없음 2021.10.22

02. 기술면접 - 자바스크립트 - 함수 선언식과 함수 표현식

공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 함수 선언식 (Function Statement) function Animal() { // ... } 함수 표현식 (Function Expression) var animal = function() { // ... }; 끝에 세미콜론을 써주어야 하는 데, 이것도 최근에는 생략해도 작성된다

15. 기술면접 - 자바 - == 와 eqauls 의 차이

공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 "==" 항등 연산자(Operator) 이다. != - 참조 비교(Reference Comparison) ; (주소 비교, Address Comparison) - 두 객체가 같은 메모리 공간을 가리키는지 확인한다. - 반환 형태: boolean type - 같은 주소면 return true, 다른 주소면 return false - 모든 기본 유형(Primitive Types)에 대해 적용할 수 있다. - byte, short, char, int, float, double, boolean "equals()" 객체 비교 메서드(Method) 이다. !(s1.equals(s2)); - 내용 비교(Conte..

14. 기술면접 - 자바 - 동기화와 비동기화의 차이

공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 동기화 (syncronous) - 한 자원에 동시에 접근하는 것을 제한을 뜻함 - 동시접근이 불가능하기 때문에 순차적으로 접근하여 작업을 진행되게 된다 - 다음에 실행될 명령은 현재 실행 중인 명령 종료 시 까지 대기 (대기시간 버퍼링 발생) - 서버와 클라이언트가 주고 받는것이 동시에 이루어지는 형태 - 시간적인 동기화가 필요한 곳에 많이 사용 (ex 현금 인출기) - Java 에서 synchronized 키워드를 사용하여 동기화를 설정한다 ㄴ 자바에서 멀티 스레드 접근 제한 키워드 ㄴ 메소드, 블럭 단위로 적용이 가능 ㄴ 단, 메소드 단위로 지정할 경우 메소드 전체에 lock 이 걸리기 때문에 가..

카테고리 없음 2021.10.22