JavaScriptのthisの覚え方 や JavaScriptの「this」は「4つ」だけ!の授業でやったから、this はみんなばっちりだよな。じゃあ今から抜き打ちテストするぞー。まだ読んでないひとは先に上の記事を読んどくといいと思うけど、腕に自信のある人はすぐに回答を始めても構わないぞ。赤点とった奴は、今日の放課後補習だからなー。
【注意】 問題 18 ~20 について、カンマ演算子 を知らないから解けなかった、という人が結構いるみたいです。本問はカンマ演算子の知識を問うものではなく、あくまで this の振る舞いについての理解を試すものなので、本来の題意を損なわないように当該の問題は改題しました。改題後も正答とその根拠は変わりません。
得点 | 評価 |
---|---|
0 ~ 5 | テスト中に寝るんじゃない |
6 ~ 11 | 鉛筆転がしのほうがマシ |
12 ~ 15 | 平凡な一般市民 |
16 ~ 19 | 10 人に一人の逸材 |
20 ~ 21 | this の世界的権威 |
22 | あなたが神か |
問 以下の JavaScript プログラムをウェブブラウザ上で実行したとき、true
が出力されるものには ○ 、そうでないものには × をつけよ。(各1点)
1
console.log(this === window);
2
'use strict';
console.log(this === window);
3
function hoge(){
console.log(this === window);
}
hoge();
4
var piyo = {
hoge: function(){
console.log(this === window);
}
};
piyo.hoge();
5
function Hoge(){
console.log(this === window);
}
new Hoge();
6
var hoge = {
Hoge: function(){
console.log(this === window);
}
};
new hoge.Hoge();
7
console.log((function(){ return this; })() === window);
8
'use strict';
console.log((function(){ return this; })() === window);
9
function hoge(){
console.log(this === window);
}
hoge.apply(window);
10
function hoge(){
console.log(this === window);
}
hoge.apply(42);
11
function hoge(){
console.log(this === window);
}
hoge.apply();
12
'use strict';
function hoge(){
console.log(this === window);
}
hoge.apply();
13
function hoge(){
console.log(this === window);
}
hoge.apply(undefined, []);
14
console.log(eval('this') === window);
15
'use strict';
console.log(eval('this') === window);
16
(function(){
console.log(eval('this') === window);
})();
17
'use strict';
(function(){
console.log(eval('this') === window);
})();
18
var _eval = eval;
console.log(_eval('this') === window);
19
'use strict';
var _eval = eval;
console.log(_eval('this') === window);
20
'use strict';
(function(){
var _eval = eval;
console.log(_eval('this') === window);
})();
21
console.log(new Function('return this')() === window);
22
'use strict';
console.log(new Function('return this')() === window);