各プログラミング言語に精通した方の監修の下、それぞれの言語に関する知識や認識についての、習熟度や理解度を確認するためのテストをお届けする「Code Comprehension」。第1回は、BeInteractive!のyossy氏によるActionScript理解度テストだ。
Code Comprehensionは、各プログラミング言語に精通した方の監修の下、それぞれの言語に関する知識や認識についての、習熟度や理解度を確認するためのテストです。普段使っている言語をどの程度理解しているか知りたい方、これから新しい言語にチャレンジしようとする方などにお勧めです。
こんにちは。BeInteractive!のyossyです。Code Comprehension Testの1発目として、ActionScriptの言語仕様やバグなどに関する理解度テストをお届けします。問題自体は、わたしが執筆しているブログ「BeInteractive!」で過去に掲載したものをベースに、ActionScript3になって変化した点について改訂を加えています。全部できた方はかなり変態チックだと思います。
次の各コードを実行したとき出力される値を答えてください。もちろん、Flashは使わずに
var a:uint = 0;
trace(a++);
var b:uint = 0;
trace(++b);
var list:Array = [1,2,3,4,5];
var copy:Array = list;
copy[0] = 6;
trace(list);
trace(copy);
var o:Object = new Object();
o.a = 1;
o.f = function():void
{
trace(this.a);
}
var f:Function = o.f;
f();
var a:String = 'hoge';
var b:String = 'fuga';
trace(a || b);
trace(a && b);
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);
}
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);
var a:uint = 1;
{
var a:uint = 2;
trace(a);
}
trace(a);
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);
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);
});
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.