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

コメントはありません。