各プログラミング言語に精通した方の監修の下、それぞれの言語に関する知識や認識についての、習熟度や理解度を確認するためのテストをお届けする「Code Comprehension」。引き続き、ActionScript理解度テストをお届けしよう。
こんにちは。BeInteractive!のyossyです。Code Comprehension Testとして、ActionScriptの言語仕様やバグなどに関する理解度テストをお届けします。ActionScript理解度テスト【その1】以上にマニアックな問題をどうぞご堪能ください。全部できた方はかなり変態チックだと思います。
次の各コードを実行したとき出力される値を答えてください。もちろん、Flashは使わずに
var xml:XML =
<items>
<item type="hoge">a</item>
<item type="fuga">b</item>
<item type="hoge">c</item>
<item>d</item>
<item type="fuga">e</item>
</items>;
trace(xml.item.(@type == "hoge"));
var xml:XML =
<x xmlns="http://items.libspark.org/">
<items>
<item type="hoge"> a</item>
<item type="fuga">
b
</item>
<item type="hoge">c </item>
</items>
</x>;
XML.prettyIndent = 8;
XML.ignoreWhitespace = false;
XML.prettyPrinting = false;
trace(xml.items.toString());
trace(xml.items.toXMLString());
var a:uint;
trace((a = 4, 5, 6));
trace(a);
var a:Object = "1";
var b:Object = 1;
var c:Number;
trace(a == a);
trace(b == a);
trace(a === b);
trace(b === a);
trace(c == NaN);
trace(c === NaN);
function Escape(value:String):String
{
return value.replace(/\\/, '\\\\');
}
trace(escape('\\2000'));
trace((0xffff0000 | 0x0000ffff));
public dynamic class Hoge
{
public var a:uint = 1;
public var b:uint = 1;
public function Hoge()
{
b = 2;
}
public function calc():uint
{
return a + b;
}
}
var h:Hoge = new Hoge();
h.c = 3;
for (var prop:String in h) {
trace(prop);
}
public class Hoge
{
public function Hoge()
{
var list:Array = [];
with(list) {
trace(length);
}
}
private var length:uint = 100;
}
var h:Hoge = new Hoge();
function add(obj:Object):Array
{
obj.push.apply(obj, [4, 5]);
return Array(obj);
}
var obj:Object = [1, 2, 3];
trace(add(obj).length);
var a:uint = 0;
function f():uint { return a++; }
var list:Array = [1,2,3,4,5];
list[f()] += 1;
list[f()] += 1;
trace(list);
いかがでしたでしょうか。ほかの言語を使われている方などは、その知識が役に立つこともあったのではないでしょうか。こちらの解答については明日公開しますので、がんばってチャレンジしてみてください。
Copyright © ITmedia, Inc. All Rights Reserved.