1.6 KiB
1.6 KiB
Statements
{{#include ../links.md}}
Terminated by ';
'
Statements are terminated by semicolons ';
' and they are mandatory,
except for the last statement in a block (enclosed by '{
' .. '}
' pairs) where it can be omitted.
Semicolons can also be omitted if the statement contains a block itself
(e.g. the if
, while
, for
and loop
statements).
let a = 42; // normal assignment statement
let a = foo(42); // normal function call statement
foo < 42; // normal expression as statement
let a = { 40 + 2 }; // 'a' is set to the value of the statement block, which is the value of the last statement
// ^ the last statement does not require a terminating semicolon (although it also works with it)
// ^ semicolon required here to terminate the assignment statement; it is a syntax error without it
if foo { a = 42 }
// ^ there is no need to terminate an if-statement with a semicolon
4 * 10 + 2 // a statement which is just one expression - no ending semicolon is OK
// because it is the last statement of the whole block
Statement Expression
A statement can be used anywhere where an expression is expected. These are called, for lack of a more creative name, "statement expressions."
The last statement of a statement block is always the block's return value when used as a statement.
If the last statement has no return value (e.g. variable definitions, assignments) then it is assumed to be [()
].