블로그 내 검색

2012. 1. 11.

자작 자바스크립트 퀴즈

자바스크립트에서 애매하고 착각하기 쉬운 문법에 대해 다시 복습하고 그것을 철저하게 설명하고 넘어갈 수 있나 체크해보는복습 차원에서 만들어본 퀴즈입니다.
공부가 깊지 않아 다소 틀린 점이 있을수도 있습니다.

퀴즈에는 @kangax : Javascript quiz 씨의 퀴즈도 많이 참고했습니다.
관심이 있으신 분은 이쪽도 가보세요.
해설은 다음 포스트에 하겠습니다

Quiz 1

var name = "javarouka";
var introduce = function() {
    var intro = "My name is ";
    if(!name) {
        var name = "unknown"
    }
    return intro += name;
}
document.write(introduce());
  • "My name is undefined"
  • "My name is null"
  • "My name is javarouka"
  • "My name is unknown"

Quiz 2

document.write(myName() + " / ");
var myName = "javarouka";
function myName() {
    return "rouxrouka";
}
delete myName;
document.write(myName);
  • 실행 오류
  • "rouxrouka / javarouka"
  • "undefined / javarouka"
  • "undefined / undefined"

Quiz 3

(function(doc) {
    document.write(new doc() === doc());
    document.write(new doc() === document);
    document.write(doc() === document);
})
(function arg() {
    return document;
})
  • 실행 오류
  • "falsefalsefalse"
  • "falsefalsetrue"
  • "falsetruetrue"
  • "truetruetrue"
  • "truefalsefalse"
  • "truetruefalse"

Quiz 4

function setter(aryUnits) {
    for(var i=0; i < aryUnits.length; i++) {
        var id = i + 1;
        aryUnits[i] = new Object();
        aryUnits[i].getId = function() {
            return id;
        }
    }
}
var ary = new Array(5);
setter(ary);
document.write(ary[3].getId());
  • 실행 오류
  • undefined
  • 4
  • 5

Quiz 5

function args() {
    return (typeof arguments) && (arguments instanceof Array);
}
document.write(args());
  • 실행 오류
  • "object"
  • true
  • false

Quiz 6

var c;
document.write(typeof typeof c);
  • "undefined"
  • "object"
  • 실행 오류
  • "string"

Quiz 7

var privacy = {
    secret: "I did not study last night.",
    getSecret : function() {
        return this.secret;
    }
};
var what = privacy.getSecret;
document.write(what());
  • 실행 오류
  • "I did not study last night."
  • undefined
  • "function() { return this.secret; }"

Quiz 8

function func1( ) { return func1; }
if(new func1() === func1()) {
    document.write("same!");
}
else {
    document.write("different!");
}
  • 실행 오류
  • "same!"
  • "different!"

Quiz 9

(function(){
    Object.prototype.scope = "prototype";
    (function(f) {
        var scope = "local";
        alert(f());
    })(function checkScope() { return scope; });
})();
  • 실행 오류
  • "local"
  • "prototype"
  • "undefined"

Quiz 10

var strZero = "0";
var numZero = 0;
var notNumer = NaN;
var strEmpty = '';
var tab = '\t';
var undef;
var nll = null;
if(strZero == true) {
    document.write("1");
}
if(notNumer == false) {
    document.write("2");
}
if(undef == nll) {
    document.write("3");
}
if(tab == 0) {
    document.write("4");
}
if(tab == true) {
    document.write("5");
}
if(strEmpty == numZero) {
    document.write("6");
}
if(false == 'false') {
    document.write("7");
}
if(strEmpty == numZero) {
    document.write("8");
}
  • ""
  • "78"
  • "3468"
  • "34568"
  • "2567"

댓글 없음:

댓글 쓰기