오답노트

프최's log·2020년 9월 20일
0

study

목록 보기
12/59
post-thumbnail

틀린 문제 풀이 혹은 맞은 답도 이해를 위해 풀이하는 공간


#01 what is the value of `x` after running the code below?
NOTE! we are asking for x not the reuslt (문제는 x의 값을 묻고 있습니다)

var x = 30;

function get(x) {
  return x;
}
function set(value) {
  x = value;
}

set(10);
var result = get(20);

20
→ x의 값을 묻고있는데 result로 답변함. 문제 잘못읽음 x의 값은 10


#02 What is the value of `result` after running the code below?
var x = 10;

function outer() {
  var x = 20;
  function inner() {
    x = x + 10;
    return x;
  }
  inner();
}

outer();
var result = x;

20


#09 What is the `result` after running the code below
var obj1 = { x: 10 };
var obj2 = Object.create(obj1);

var obj3 = Object.create(obj2);

obj2.x = 20;

var result = obj3.x + 10;

30
→ obj2의 틀을 빌려오고 같은 주소지를 바라보고 있다. obj3에 새로운 x의 값을 할당해준 것이 없기 때문에 obj2의 x값이 바뀌면 obj3의 값도 바뀌게 된다. 만약 이미 obj3에 값이 할당되었다면, obj2의 x가 바뀌어도 영향받지 않는다.
더불어 obj3의 값이 바뀌어도 obj2는 영향받지 않는다.


#10 What is the Big O time complexity for searching for a value in an unsorted array?

O(n) Linear


#11 What is the Big O time complexity for retrieving the value at a specific index in a linked list? *

O(n) Linear


#12 What is the worst case Big O time complexity of inserting a value into a binary search tree? *

O(n) Linear
참조


# 14 After running the code below what message will be eventually be alerted and after how long?
var name = 'Window';
var alice = {
  name: 'Alice',
  sayHi: function() {
    alert(this.name + ' says hi');
  }
};

var bob = { name: 'Bob' };

setTimeout(alice.sayHi.bind(alice), 1000);

Alice says hi, after 1 sec
→ bind를 통해 값을 쥐고 있다가, 1초 후 반영


# 15 After running the code below what message will be eventually be alerted and after how long?
var name = 'Window';
var alice = {
  name: 'Alice',
  sayHi: function() {
    alert(this.name + ' says hi');
  }
};
var bob = { name: 'Bob' };
setTimeout(alice.sayHi.call(bob), 1000);

Bob says hi, immediately
→ 쥐고 있던 값이 아니므로 부르자마자 실행


# 16 After running the code below what message will be eventually be alerted and after how long?
var name = 'Window';
var alice = {
  name: 'Alice',
  sayHi: function() {
    alert(this.name + ' says hi');
  }
};
var bob = { name: 'Bob' };

alice.sayHi.bind(bob);

setTimeout(alice.sayHi(), 1000);

Alice says hi, immediately
→ bind는 반영되지 않고, 밑에 즉시 실행이 진행된다


function foo() {
  var data = 10;

  bar(function(players) {
    data = players;
  });

  return data;
}

function bar(callback) {
  setTimeout(callback, 0);
}

let result = foo();

10
→ callback 함수 내 playesrs에 전달된 값이 없어서 10을 선택함


#19 After the following code runs, what will be the value of player.score?
var player = { score: 3 };
function doStuff(obj) {
  obj.score = 2;
  obj = undefined;
}
doStuff(player);

undefined 그러나 답은 2
→ 리턴된 값이 없으므로 함수실행은 undefined가 되지만, score는 반영되어 2가 된다. 같은 주소지를 바라보고 있는 것과 같음. undefined는 함수 내부의 obj에만 해당되기 때문에 player는 영향을 받지 않는다.

profile
차곡차곡 쌓아가는 나의 개발 기록

0개의 댓글