-
Notifications
You must be signed in to change notification settings - Fork 25
Simple Expressions
Alexander Nemish edited this page Aug 7, 2013
·
12 revisions
val a = 12
val b = -a + 3
val c = b == 9
translates to
var a = 12
var b = -a + 3
var c = b == 9
In Scala if and match are expressions when in javascript those are statements. JScala correctly translates if/match expressions to Javascript statements in case of val/var definitions:
val a = 5
val b = if (a > 2) 1 else 2
val c = b match {
case 1 => true
case _ => false
}
translates to
var a = 5;;
var b;
if (a > 2) b = 1; else b = 2;
var c;
switch(b) {
case 1: c = true; break;
default: c = false; break;
}
Scala Array and all Seq factories are translated into Javascript array literals:
val a = Array(1, 2)
val b = JArray(1, 2)
val c = Seq(1, 2)
val d = ArrayBuffer(1, 2)
d(0) = a(1)
b.push(c.length)
translates to
var a = [1, 2];
var b = [1, 2];
var c = [1, 2];
var d = [1, 2];
d[0] = a[1];
b.push(c.length);
Class JArray implements Javascript Array interface.
Scala anonymous classes that extend AnyRef are translated into Javascript objects:
val a = new {
val filed = 1
def foo(n: String) = parseInt(n)
}
translates to
var a = {
field : 1,
foo: function(n) {
return parseInt(n);
}
}