Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
392
Help us understand the problem. What is going on with this article?
@KDKTN

じゃあ this の抜き打ちテストやるぞー

More than 5 years have passed since last update.

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);    

答え

392
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
KDKTN
わ た し で す 三(^q^)三

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
392
Help us understand the problem. What is going on with this article?