Re:JavaScriptに自信があるならこのクイズを受けてみるといい!
http://www.ideaxidea.com/archives/2010/02/js_quiz.html
やってみました。結果は恥ずかしくて公開出来ない。。
「JavaScriptが一番得意です!」って言い続けてたのに。。
悔し紛れに解説をしてみようと思います。
第1問
(function(){
return typeof arguments;
})();
- “object”
- “array”
- “arguments”
- “undefined”
回答
1."object"が正解
解説
number,string,boolean,undefinedのプリミティブ型と、function以外全てobjectの派生型として扱われる。
typeof nullが"object"になるのは知らなかった。
function type_of_what(x){ return typeof x;};
type_of_what(1) // "number"
type_of_what("abc") // "string"
type_of_what(true) // "boolean"
type_of_what(undefined) // "undefined"
type_of_what(function(){}) // "function"
type_of_what([1,2,3]) // "object"
type_of_what({foo:"bar"}) // "object"
type_of_what(null) // "object"
ちなみに、argumentsは配列ではなく"Array-like Object"です。
lengthプロパティは持っていますが、push、popなどのArray特有のメソッドは持っていません。
なんとなくわかったつもりになっていたけど、ちゃんと言葉にして説明って出来ないものですね。
明日は第2問の解説にチャレンジします。