ActionScript理解度テスト【その1】Code Comprehension

各プログラミング言語に精通した方の監修の下、それぞれの言語に関する知識や認識についての、習熟度や理解度を確認するためのテストをお届けする「Code Comprehension」。第1回は、BeInteractive!のyossy氏によるActionScript理解度テストだ。

» 2008年05月12日 03時27分 公開
[新藤愛大,ITmedia]

はじめに:Code Comprehensionとは?

Code Comprehensionは、各プログラミング言語に精通した方の監修の下、それぞれの言語に関する知識や認識についての、習熟度や理解度を確認するためのテストです。普段使っている言語をどの程度理解しているか知りたい方、これから新しい言語にチャレンジしようとする方などにお勧めです。


 こんにちは。BeInteractive!のyossyです。Code Comprehension Testの1発目として、ActionScriptの言語仕様やバグなどに関する理解度テストをお届けします。問題自体は、わたしが執筆しているブログ「BeInteractive!」で過去に掲載したものをベースに、ActionScript3になって変化した点について改訂を加えています。全部できた方はかなり変態チックだと思います。

次の各コードを実行したとき出力される値を答えてください。もちろん、Flashは使わずに

問1.

var a:uint = 0;

trace(a++);

var b:uint = 0;

trace(++b);


問2.

var list:Array = [1,2,3,4,5];

var copy:Array = list;

copy[0] = 6;

trace(list);

trace(copy);


問3.

var o:Object = new Object();

o.a = 1;

o.f = function():void

{

    trace(this.a);

}


var f:Function = o.f;

f();


問4.

var a:String = 'hoge';

var b:String = 'fuga';

trace(a || b);

trace(a && b);


問5.

function f():String { return 'f'; }

function f2():String { return 'f2'; }

var a:String;

var b:String;


if ((a = f()) || (b = f2())) {

    trace(a);

    trace(b);

}


問6.

function f(a:uint, b:Object):void

{

    a = 1;

    b.n = 2;

}


var n:uint = 0;

var o:Object = new Object();

o.n = 0;


f(n, o);


trace(n);

trace(o.n);


問7.

var a:uint = 1;

{

    var a:uint = 2;

    trace(a);

}

trace(a);


問8.

var a:Number;

var b:int;

var c:uint;

var d:Boolean;

var e:Object;


trace(a);

trace(b);

trace(c);

trace(d);

trace(e);


問9.

function f(g:Function):void

{

    var b:uint = 2;

    g();

}


var a:uint = 0;

var b:uint = 1;

f(function ():void

{

    trace(a);

    trace(b);

});


問10.

var obj:Object = [1, 2, 3];


trace(obj as Array);

trace(obj as Number);

trace(obj as String);


 いかがでしたでしょうか。ほかの言語を使われている方などは、その知識が役に立つこともあったのではないでしょうか。こちらの解答については明日公開しますので、がんばってチャレンジしてみてください。

ActionScript理解度テスト【その1】解答編はこちら

豆知識問題

Flash/ActionScript使いは「変態」と呼ばれることが多々あります。その理由をお答えください。


Copyright © ITmedia, Inc. All Rights Reserved.