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

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

» 2008年05月13日 09時32分 公開
[新藤愛大,ITmedia]

 こんにちは。BeInteractive!のyossyです。Code Comprehension Testとして、ActionScriptの言語仕様やバグなどに関する理解度テストをお届けします。ActionScript理解度テスト【その1】以上にマニアックな問題をどうぞご堪能ください。全部できた方はかなり変態チックだと思います。

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

問11.

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


問12.

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


問13.

var a:uint;

trace((a = 4, 5, 6));

trace(a);


問14.

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


問15.

function Escape(value:String):String

{

    return value.replace(/\\/, '\\\\');

}


trace(escape('\\2000'));


問16.

trace((0xffff0000 | 0x0000ffff));


問17.

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

}


問18.

public class Hoge

{

    public function Hoge()

    {

        var list:Array = [];

        with(list) {

            trace(length);

        }

    }

    

    private var length:uint = 100;

}


var h:Hoge = new Hoge();


問19.

function add(obj:Object):Array

{

    obj.push.apply(obj, [4, 5]);

    return Array(obj);

}


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

trace(add(obj).length);


問20.

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.

注目のテーマ