Rev. 2.73

kangax씨가 재미있는 자바스크립트 문법 퀴즈 14문제를 냈습니다. 다음 예제 코드를 잘 읽고 보기에서 정답을 선택하세요. 문제를 모두 풀었다면 본문 하단에 있는 "채점하기" 버튼을 클릭하여 즉시 풀이 결과를 확인할 수 있습니다. 조심하세요! 다양한 함정들이 도사리고 있으니까요.

문제 코드 실행 환경 :

  • ECMAScript 3번째 에디션으로 간주합니다.(5번째 에디션 아님)
  • Implementation quirks do not count (오직 표준 동작에 의한 것에 한합니다.)
  • 모든 코드는 전역에서 실행됩니다.(eval되지 않으며 함수의 일부분일 수 없습니다.)
  • 어떠한 변수도 미리 선언되어 있지 않습니다.(그리고 문제들은 서로 연관성을 가지고 있지 않습니다.)
  • 답변은 코드가 최종 실행결과를 리턴하는 값이거나 가장 마지막 라인에 할당된 변수의 값입니다.
  • 보기의 “Error”는 코드가 실행되는 과정에서 발행하는 런타임 오류를 말합니다.

문제 #1)

(function(){
  return typeof arguments;
})();

문제 #2)

var f = function g(){ return 23; };
typeof g();

문제 #3)

(function(x){
  delete x;
  return x;
})(1);

문제 #4)

var y = 1, x = y = typeof x;
x;

문제 #5)

(function f(f){ 
  return typeof f(); 
})(function(){ return 1; });

문제 #6)

var foo = { 
  bar: function() { return this.baz; }, 
  baz: 1
};
(function(){ 
  return typeof arguments[0]();
})(foo.bar);

문제 #7)

var foo = {
  bar: function(){ return this.baz; },
  baz: 1
}
typeof (f = foo.bar)();

문제 #8)

var f = (function f(){ return "1"; }, function g(){ return 2; })();
typeof f;

문제 #9)

var x = 1;
if (function f(){}) {
  x += typeof f;
}
x;

문제 #10)

var x = [typeof x, typeof y][1];
typeof typeof x;

문제 #11)

(function(foo){
  return typeof foo.bar;
})({ foo: { bar: 1 } });

문제 #12)

(function f(){
  function f(){ return 1; }
  return f();
  function f(){ return 2; }
})();

문제 #13)

function f(){ return f; }
new f() instanceof f;

문제 #14)

with (function(x, undefined){}) length;

 

덧. 친절하게도 andrwj님은 문제들을 해석해 주셨네요.

Comments

Got something to add? You can just leave a comment.

Your Reaction Time!

captcha

avatar