38,500원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결코딩인터뷰를 저격하는 JS 스나이퍼 양성학교
prototype.constructor 를 꼭 설정해주어야 하는 이유가 뭔가요?
코드를 돌려 봤을 때 constructor를 설정해주지 않아도 taste() 와 flavor() 메소드가 정상적으로 실행되는 것으로 확인했습니다. prototype.constructor 를 꼭 설정해줘야한다면 그 이유가 뭔지 궁금하고, 설정해주지 않았을 때 생기는 문제점이 궁금합니다!
- 미해결코딩인터뷰를 저격하는 JS 스나이퍼 양성학교
생성자 함수와 클래스 중 어느 것을 사용하는게 효율적인가요?
면접에서 클래스와 생성자 함수의 차이를 물어보시는 이유가 궁금합니다.생성자함수와 클래스의 차이점은 문법 차이 말고는 다를게 없는것인가요??
- 미해결코딩인터뷰를 저격하는 JS 스나이퍼 양성학교
클로저 파트 마지막 예시에 관해 질문있습니다.
예시를 RunJS에서 따라쳐봤는데요. person.age를 30으로 바꿨고, person.age를 출력했을 때는 30이 찍히는데, 왜 person.getAge( ); 로 찍었을 때는 15로 계속 나오는지 도저히 이해가 안되네요ㅠ 왜 이런 현상이 발생하는 건가요??? 제가 이해력이 부족해서, 강의만으로 온전히 이해가 안되네요. 이 부분에 대해서 좀 더 자세한 설명 부탁드리겠습니다. 감사합니다.- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 미해결코딩인터뷰를 저격하는 JS 스나이퍼 양성학교
이벤트 위임관련...
내용 너무 좋네요... 버블링과 캡처링에 대해서 쉽게 설명해주셨어요. 다만 개인적으로 아쉬운부분은 왜 요소마다 addEventListener를 매번 등록이 아닌 이벤트 위임을 사용하게되는지 내용을 구체적으로 더 언급을 해주셨으면 좋지않았을까싶어요. 제가 아는 범위내에서 설명을 드려보고자한다면 이벤트가 필요한 요소마다 매번 addEventListener를 등록하게된다면 메모리 부담이 증가하게됩니다. 그래서 이벤트 위임을 이용하는것으로 알고 있어요. 여기서 질문이 있는데... js에서 만약 등록된 요소를 remove element를 하게된다면 이전에 removeEventListener를 하고 remove element를 해야할까요? 아니면 그냥 요소만 삭제한다면 gc에서 알아서 지워줄까요??
- 미해결코딩인터뷰를 저격하는 JS 스나이퍼 양성학교
let, const에서의 호이스팅에 대해서...
강의 내에서 let, const 에대해서는 호이스팅이 일어나지 않는다고 했는데 저는 조금 생각이 다르다고 생각해요. 일단 크게 2가지 단계로 나눠본다고 가정한다면... 1. 선언단계 변수나 함수들이 선언된다. 2. 실행단계 선언된 변수 값이 할당되거나 함수들이 실행된다. 즉 같은 변수를 block scope단위로 중첩해서 선언한다고 가정한다면 execution context가 생성 시, 호이스팅을 하지 않았다면 outer environment reference(es5 이전 scope chain)를 에서 자유변수로부터 값을 사용참조하겠지만, 호이스팅이 발생하면서 이미 두 execution context 내부적으로는 변수의 존재를 알고있으므로, 실행단계에서 TDZ존에 걸린다고 생각합니다.
- 미해결코딩인터뷰를 저격하는 JS 스나이퍼 양성학교
생성자 함수관련...
강의에서 정정해주시면 좋을것같아 의견드려요. var myFoo1 = Food('파스타') 처럼 new 키워드를 제거하는 경우 Food는 생성자의 기능이 아닌 함수로 작동하게됩니다. 즉 함수 Food는 리턴하는 키워드가 존재하지 않으므로 undefined를 반환하게 되고, 이것은 this와는 전혀 상관없다고 생각합니다. es5코드로 작성하셨으니 es5기준으로 동작을 말씀드리자면... 1. Food함수가 실행 시 좌측에 별다른 식별자가 존재하지 않으므로 Food함수 내부의 this는 window객체를 가르킨다.(use strict 사용시 null 출력) 2. 아래 코드는 다음과 같다. this.name = name; window.name = name; this.smell = function() {...}; window.smell = function() {...} 3. Food 함수내에 반환하는것이 없으므로 undefined를 반환.. var myFood1 = Food('블라블라'); myFood1. 으로 접근 시 에러 발생.. 즉 이것은 this가 name or smell이 존재하지 않아서 발생하서가 아닌 undefined로부터 name or smell을 접근하려고 하니 발생하는 에러라고 생각합니다. 혹시 제가 틀린부분이나 영상에서 제가 잘못오이해한부분이 있다면 피드백 감사하겠습니다.
- 미해결코딩인터뷰를 저격하는 JS 스나이퍼 양성학교
function과 arrow function 관련
강의 너무 좋네요 근데 조금 주의하셔야하는부분이라고 생각되는부분이 할당과 바라본다라는 표현은 구분해서 사용하면 더 좋거같아요. 이 표현은 분명한 차이가 있다고 생각해요. 왜 차이가 있냐고 생각하면 function 키워드를 이용한 함수는 함수가 실행되는 순간에 콘텍스트가 생성이 되면서 this를 바인딩하지만, arrow function은 this 바인딩 작업 자체를 하지 않으므로 arrow function으로 생성된 콘텍스트에서 찾는것이 아닌 상위 콘텍스트에서 this를 찾는게되므로 바라본다라는 표현으로 쓰시는게 더 적절하지 않을까 생각합니다.(강의 중간중간에 할당과 바라본다 섞여있긴하더라구요^^;;); 상기 의견에 대해서 어떻게 생각하시는지 궁금합니다. 혹시 제가 잘못된 부분이 있어 바로잡아주신다면 더욱 감사하겠습니다.
- 미해결코딩인터뷰를 저격하는 JS 스나이퍼 양성학교
객체 공장장, <생성자> 편에 잘못된 내용이 있는것 같습니당
안녕하세요, 쉽고 재밌는 강의 잘보고 있습니다 ^^ 다름이 아니고, 객체 공장장, <생성자> 강의 뒷부분 내용 중에 잘못된 내용이 있는것 같아 제보?드립니당.. 뒷부분에 생성자 함수 예제 코드에서, new 키워드 없이 호출한 케이스인데요~ 생성자 함수를 new 키워드 없이 호출하여 변수에 할당할 경우, 해당 생성자 함수에 return 값이 없기때문에 ( == undefined) 변수명.{생성자 내 this의 프로퍼티} 로 접근할 경우 undefined의 프로퍼티에 접근하게 되어 에러가 나는 것 같은데요.. 설명은 this가 window를 가리키고 있기 때문에 window 내 name 프로퍼티가 없기때문에 에러가 나는 것이라고 하셨는데.. 해당 함수 내 this.name = name; 부분은 정상 동작(window 객체 내 name 프로퍼티 생성 및 값 할당)하는 것 같아서용..ㅎㅎ; 그리고 맨 뒤 <정리해 봅시다> ppt에서 마지막 줄 "new 연산자" -> "this 연산자"가 맞지 않나 질문드려요~! 감사합니다.
- 해결됨코딩인터뷰를 저격하는 JS 스나이퍼 양성학교
동영상강의에서 사용했던 코드 공유 부탁드립니다.
강의에서 사용했던 코드들도 공유좀 해주셨으면 좋을것같습니다. 나중에 찾아볼떄 코드로 보는게 저는 가장편하다고느낍니다. 추 후 찾아볼때 동영상을 다시보지않고 코드만으로 찾을수 있었으면 좋겠습니다 감사합니다.
- 미해결코딩인터뷰를 저격하는 JS 스나이퍼 양성학교
생성자 내에 함수 선언
이렇게 하나 이렇게 하나 는 true를 반환하는데 prototype 안에다가 함수를 넣었을때 이점이 무엇인지 잘 와닿지 않습니다!
- 해결됨코딩인터뷰를 저격하는 JS 스나이퍼 양성학교
apply에서 this 질문입니다
위와 같이 실행했을때 forEach 내부의 this 빼고는 전부 apply의 첫번째 인자인 myDiner가 출력되었는데 forEach 내부에서는 강의에서 말씀하신 대로 윈도우가 출력되었습니다. 그리고 map 함수도 arrow function이 아닌 일반 함수로 바꿔서 실행해봤는데 map 내부에서도 윈도우 객체를 출력하게 되었습니다. 1) 이 결과를 해석해보면 apply에서 첫번째 인자로 넘겨준 객체는 콜백함수 내부의 this까지는 영향을 미치지 않는다고 보면 될까요?? 2) map 함수는 두번째 인자로 this를 줘도 적용이 되지 않는데 두번째 인자로 this를 주는 방식은 forEach에서만 적용되는 건가요?