22,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결코어 자바스크립트
primitive type의 값 변경 시 원리 질문드립니다. (immutable)
안녕하세요. 동영상 강의를 들으면서 인터넷 자료 참고하다 이해 안되는 부분이 있어 질문 드립니다. 우선 primitive type은 immutable value라는 자료를 봤습니다. immutable value란, "값을 재할당은 할 수 있지만, 메모리 영역에서의 변경이 불가능"임으로 이해를 했습니다. 그렇다면 들어주신 예시 중 var b = 'abc'; b = false; 구문이 실행될 때, b가 가리키고 있던 314 주소의 값 'abc'가 바로 false로 변경되는 것이 아니라, 316 주소(새로운 주소)에 false 값이 들어가고, b가 가리키는 주소가 314에서 316으로 변경되는 것은 아닌지..헷갈려서 질문드렸습니다. 강의 잘 듣고 있습니다. 감사합니다.
- 미해결코어 자바스크립트
[object Object] 이렇게 출력되는 이유가 뭔가요?
기존 toString() 함수를 호출하면 왜 저렇게 출력되는지 궁금합니다.
- 미해결코어 자바스크립트
var self = this 를 bind 메소드로 바꿔보는 도중에 궁금한 것이 있습니다.
강의에서 var self = this를 bind함수로 대신 할 수 있다 하셔서 앞선 예제에 적용을 해봤는데 아래의 코드에서 왜 출력이 10이되는지 잘 모르겠습니다ㅠㅠvar a = 10;var obj = { a: 20, b: function() { var c = function() { console.log(this.a); } c.bind(this); c(); }}obj.b();
- 미해결코어 자바스크립트
함수선언문은 그럼 아예 안쓰는게 낫나요?
함수 선언문보다 함수표현식을 쓰는게 더 바람직하다고 하셨는데, 그럼 선언문 말고함수표현식만으로 함수를 구성해도되나요? 아니면 선언문이 꼭 필요할때가 있나요?
- 미해결코어 자바스크립트
gomu.__proto__.getAge()
Person.prototype.age =100 일 때gomu.proto.getAge() 가 왜101이 나오고gomu.getAge()는 왜 31 나오나요?? gomu.proto.getAge()는 this가 gomu.proto에 바인딩 되고다른 하나는 gomu에 바인딩 되는데 . 이게 어떻게 결과에 영향을 미치게되는 것인가요
- 미해결코어 자바스크립트
call, apply, bind에 관한 질문
chrome 개발자도구를 통해 call 함수를 직접 실행해 보는데 영상에서와 같은 결과가 나오지않습니다. 이유를 알고 싶어 질문을 남김니다.function a(x,y,z) { console.log(this.x,y,z);}var b = { c: 'eee'};a.call(b,1,2,3);결과undefined 2 3
- 미해결코어 자바스크립트
참조형데이터 저장에 관한 질문
참조형데이터 저장에서 컴퓨터는 왜 각 프로퍼티의 값을 나누어서 저장하는 건가요??{a:@1056}이렇게 저장하는 것보다{a:1}이렇게 바로 저장하는게 효율적이지 않나요?
- 미해결코어 자바스크립트
closure 관련 질문드립니다
function a(){var _x = 1;return {get x(){ return _x},set x(v) { _x=v}}}var c = a();위에 code는 proto에는 함수로 들어가있는데get()set()을 호출할 때 정의가 안되어있다고 에러가 나는데 function a(){var _x = 1;return {get(){ return _x},set(v) { _x=v}}}var c = a();아래 처럼 함수 이름만 쓸 때 호출을 할 수 있는데 뭐가 잘 못 된 건가요???
- 미해결코어 자바스크립트
.bind에 관해서
5:10 쯤에 a를 가지고 새로운 함수를 만들어줘 this는 b가 되었으면 좋겠고, 인자에는 1과 2를 미리 넣어둘께, 이렇게해서 새로 만들 함수는 변수D에 담아줘 그 변수 D는 함수인데, 1과 2를 받지말고 그 뒤에있는 3번째 인자만 받도록 해줘 라고 말씀 하시는데 이게 이해가 조금 안되는데요.미리 설정된 디폴트 파라미터가 있을 경우에 뒤에 붙여서 사용되는 것으로 알고있습니다. 실제 결과값도 1과 2를 받지말고 라는 부분이랑은 상충되는 부분이 있습니다. 어떻게 이해하면 좋을까요?
- 미해결코어 자바스크립트
변수 재선언에 대한 질문입니다.
"동일 변수 재선언은 같은 유효범위 안에서만 해당한다"는 코멘트를 보고 문득 생각난 것이 있어 데이터타입 영상을 다시 보았습니다. 생각해보니, "재선언"이라는 것만 떼서 보면, inner에서 a가 재할당되었다면 outer나 window 범위에서 a는 inner에서 덮어쓴 3이라는 데이터로 바뀌었어야 합니다. 그런데 inner 범위에서만 a를 재선언했으니 실제로 메모리에는 두개의 a변수값이 각각의 주소값을 가지되, 바라보는 위치 혹은 서로 다른 위치를 바라본다 해도 값이 같은(혹은 다른) 식이 되겠구나 싶었습니다. 어쨌든 메모리에 둘 모두가 존재해야 출력, 반환받을 수 있다는 결론인데요. 그러면 이렇게 동일명의 변수는 어떤 방식으로 메모리에 저장되고 값을 찾는지가 궁금하네요. 전 지금까지 해당 함수 내부에서 값을 덮어씌웠다고만 생각했습니다.
- 미해결코어 자바스크립트
run 메서드는 어떻게 호출해야 하나요?
run의 this가 누구인지 잘 모르겠습니다. createcar.run()? window.run()??return { property : value }의 경우 할당 공간이 어디가 되는 건가요?단지 리터럴로 선언할 경우 함수 내부임에도 전역객체의 메서드가 되는지,무언가 접근방식이 있는건지 궁금하네요.
- 해결됨코어 자바스크립트
두번째 줄부터..오류를 뿜어냅니다...
(사진)
- 해결됨코어 자바스크립트
바인딩에 대한 이해
2-4. 메소드코드를 보고 왜 이러한 결과물이 나오는지에 대해서는 설명을 통해서 알겠는데 this 를 바인딩 한다는 것에서 바인딩 이라는 것을 어떻게 이해해야 좋을 지 알고싶습니다. 바인딩에 대해 조금 찾아보니 특정객체에서 실행되게끔 고정시키는 역할, 속성과 개체사이의 연관 이런 식으로 나오는데 애매하게 넘어가면 중요한 부분을 놓치고 가는 것 같아서 여쭤봅니다.
- 해결됨코어 자바스크립트
두 번째 줄 부터 오류를 뿜어내요.
Uncaught TypeError: b is not a functionat 2.function.html:12console.log(a());console.log(b());console.log(c());// 함수 선언문function a() { return 'a';}// 기명 함수표현식var b = function bb() { return 'bb';}// (익명) 함수표현식var c = function() { return 'c';}물론 console.log 를 함수 아래에 작성하면 이상없이 잘 나옵니다.