BeInteractive!

ActionScriptの言語仕様とかバグとかの理解度テストを作ってみました。全部出来たらかなり変態チックだと思います。


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

解答は次のエントリにポストします。

1.

var a:Number = 0;
trace(a++);
var b:Number = 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 () : Boolean { return true; }
function f2 () : Boolean { return true; }
var a:Boolean;
var b:Boolean;

if ((a = f()) || (b = f2())) {
    trace(a);
    trace(b);
}

6.

function f (a:Number, b:Object) : Void
{
    a = 1;
    b.n = 2;
}

var n:Number = 0;
var o:Object = new Object();
o.n = 0;

f(n, o);

trace(n);
trace(o.n);

7.

var a:Number = 1;
{
    var a:Number = 2;
    trace(a);
}
trace(a);

8.

var o:Object = { a:0 };
var b:Object = {};
b.__proto__ = o;
b.a = 1;
trace(o.a);

9.

function f (g:Function) : Void
{
    var b:Number = 2;
    g();
}

var a:Number = 0;
var b:Number = 1;
f(function () : Void
{
    trace(a);
    trace(b);
});

10.

function f () : Void
{
    var a:Number = 1;
}
function g () : Void
{
    b = 2;
}

f();
trace(a);
g();
trace(b);

11.

for (var i:Number = 0; i < 3; ++i) {
    function mul (n:Number) : Number
    {
        return n * 3;
    }
    trace(mul(i));
}

12.

trace((function(){ return 'hello'; })());

13.

var a:Number;
trace((a = 4, 5, 6));
trace(a);

14.

trace((1).toString() == String(1));
trace((1.5).toString() == String(1.5));
trace((true).toString() == String(true));
trace((null).toString() == String(null));
trace((undefined).toString() == String(undefined));

15.

var a:Boolean = true;

if (a == True) {
    trace('true');
}
else {
    trace('false');
}

16.

trace((0xffff0000 | 0x0000ffff));

17.

class Hoge
{
    public var a:Number = 1;
    public var b:Number = 1;
    
    public function Hoge ()
    {
        b = 2;
    }
    
    public function calc () : Number
    {
        return a + b;
    }
}

var h:Hoge = new Hoge();
for (var prop:String in h) {
    trace(prop);
}

18.

class List
{
    private var list:Array = new Array();
    
    public function getList () : Array { return list; }
    public function dump () : Void { trace(list); }
}

var l:List = new List();
var l2:List = new List();

l.getList().push('a');
l2.getList().push('b');

l.dump();
l2.dump();

19.

class Movie
{
    public function start () : Void { play(); }
    public function play () : Void { trace('play!'); }
}

var m:Movie = new Movie();
m.start();

20.

var a:Number = 0;
function f () : Number { return a++; }

var list:Array = [1,2,3,4,5];
list[f()] += 1;
list[f()] += 1;

trace(list);

この記事へのトラックバック

32 vegas d`internet
armadillos,duct advises infantrymen
buy levitra
Wie Ihren Artikel zu Digg inzuzufügen?

TrackBack URL:

http://www.be-interactive.org/trackback.php?id=145

この記事へのコメント

コメントはありません。

コメント書き込み:

カテゴリ

タグ

アーカイブ