Resin 1.1
FAQ
Reference
JavaDoc
Demo
Java Tutorial
Getting Started
Configuration
Servlet
JSP
XTP/XSL
JavaScript
JS Library
Source Text
Literals
Regexp
Operators
Objects
Functions
Statements
Java Wrapping
Literals
Literals
null | Returns the `null` value.
undefined | Returns the `undefined` value.
true | Returns the boolean `true` value.
false | Returns the boolean `false` value.
n[.m][e[+-]dd] | Returns a decimal floating point number.
0xhhh | Returns a hexidecimal number.
0ooo | Returns an octal integer.
'string' | Returns a string literal.
"string" | Returns a string literal
@"interpolated string" | Returns a string created by interpolating strings and variables.
@<<END | Returns a multiline interpolated string terminated by END.
{id_1:expr_1, ..., id_n:expr_n} | Returns a new object with assigned properties.
[expr_1, ..., expr_n] | Returns a new array with assigned values
/regexp/[i][g][m][x] | Returns a regular expression literal.
function(args) | Returns a function closure.
Literals
### null
Returns the `null` value. `null` is typically used to denote an object variable with no value. However, a variable which has never been assigned will have the value `undefined`. When converted to a number, `null` returns `0`. When converted to a string, `null` returns `"null"`. `null` has no properties and cannot be converted to an object. When a script tries to get a property of `null`, e.g. `null.foo`, Resin will throw an exception.
list = { first:1, rest:null }
### undefined
Returns the `undefined` value. Unassigned variables contain the `undefined` value and unassigned properties also contain the `undefined` value. When converted to a number, `undefined` returns `0`. When converted to a string, `undefined` returns `"undefined"`. `undefined` has no properties and cannot be converted to an object. When a script tries to get a property of `undefined`, e.g. `undefined.foo`, Resin will throw an exception.
var a a
| undefined
a = new Object() a.foo
| undefined
function foo(a) { return a } foo()
| undefined

### true

Returns the boolean `true` value.

When converted to a number, `true` returns `1`. When converted to a string, `true` returns `"true"`.

"" + true
| true
true + true
| 2
Boolean.prototype.a = 1 true.a
| 1

### false

Returns the boolean `false` value.

When converted to a number, `false` returns `0`. When converted to a string, `false` returns `"false"`.

"" + false
| false
false + false
| 0
Boolean.prototype.a = 1 false.a
| 1

### n[.m][e[+-]dd]

Returns a decimal floating point number. The precision of the number is 64 bits, the same as Java's double.

0
.1
1e10
.1e10
10.01e10

bad number
1.

### 0xhhh

Returns a hexidecimal number.

0xf
| 15
0xA0
| 160

### 0ooo

Returns an octal integer.

077
| 63
010
| 8

### 'string'

Returns a string literal. Strings may contain any character except the newline characters. Non-printable characters are included in the string by escaping the character as in the following table.

Character Escapes
Escape | Meaning
--- | ---
\b | backspace, 0x08
\e | escape, 0x1b
\f | form-feed, 0x0c
\n | line-feed, 0x0a
\r | carriage-return, 0x0d
\t | tab, 0x09
\v | vertical feed, 0xc
\cA | Control-A
\oooo | Octal escape
\xxx | Hex escape
\uxxxx | Unicode escape
\A | The character A

Example string literals
'"'
| "
"'"
| '
'\''
| '
'first\nsecond'
| first second
'\\\A'
| \A
'\x4012'
| @12
'\uaa55'.charCodeAt(0)
| 0xaa55
'$a'
| $a

### "string"

Returns a string literal String literals delimited by 'string' and "string" are equivalent. The script writer can choose either to minimize the number of escapes.

### @"interpolated string" | ### Resin 1.0

Returns a string created by interpolating strings and variables. The character '$' indicates that the value of the following identifier should be inserted into the string. Interpolated strings let the script writer create strings more clearly than the standard addition operator.

Equivalent Strings
a = 3; b = 4; c = 5; @"$a*$a + $b*$b = $c*$c"
| 3*3 + 4*4 = 5*5
a = 3; b = 4; c = 5; $a + '*' + $a + ' + ' + $b + '*' + $b + ' = ' + $c + '*' + $c
| 3*3 + 4*4 = 5*5

Example interpolation
sum = 2 + 2; @"2 + 2 = $sum"
| 2 + 2 = 4
a = [1,2,3] @"$(a[0]) $(a[1]) $(a[2])"
| 1 2 3
a = [1,2,3] @"$a[0]\n$a[1]"
| [object Object][0] [object Object][1]
a = 1; @"\$a"
| $a

### @<<END | ### Resin 1.0

Returns a multiline interpolated string terminated by END.

Because normal string literals cannot have newlines in them, creating long multiline strings gets messy and all the syntax for adding the lines together gets in the way of the string itself. Multiline strings eliminate extraneous syntax, allowing the script to clearly express the programmer's intentions.

Simple multiline string
a = 2 writeln(@<<END); This is a simple multiline string. It has $a lines. END
This is a simple multiline string. It has 2 lines.

Adding a Database Item
function addItem(title, author, description) { stmt = databasePool.createStatement(); stmt.executeUpdate(@<<END); INSERT INTO CATALOG values ( '$title', '$author', '$description' ) END

### {id_1:expr_1, ..., id_n:expr_n}

Returns a new object with assigned properties.

It is equivalent to the following:

o = new Object(); o.id_1 = expr_1; ... o.id_n = expr_n;

The Object toSource call returns a string using the object literal format.

### [expr_1, ..., expr_n]

Returns a new array with assigned values

It is equivalent to the following:

new Array(expr_1, ..., expr_n)

The Array toSource call returns a string using the array literal format.

### /regexp/[i][g][m][x]

Returns a regular expression literal. See regexp for a complete description of regular expression literals.

### function(args) { ... }

Returns a function closure. See function for a complete description of functions and closures.

function [name] (arg_1, ..., arg_n) { statement_list }

Sort with comparison function
a = [{a:19}, {a:1}, {a:13}] a.sort(function (a, b) { return a.a < b.a ? -1 : 1 }).toSource()
[{a:1}, {a:13}, {a:19}]

Regexp replace using replace function
"abcdefa".replace(/[ac]/g, function (a) { return a.charCodeAt(0) })
97b99def97

Source Text |  | Regexp

Copyright © 1998-2000 Caucho Technology. All rights reserved.
Last modified: Thu, 16 Sep 1999 14:56:48 -0700 (PDT)