32 bit signed integer
Variables ending in % are created as integers. VAR X%
In DEFINT mode, variables with no suffix are created as integers. OPTION DEFINT:VAR X
Numbers in the integer range without . E or # are integers. 714
# constants are integers. #LEFT
Some functions/operators return integers. 5 DIV 2
64 bit floating point number
Variables ending in # are created as real type. VAR Y#
Without DEFINT mode, variables with no suffix are real. VAR Y
Numbers outside the integer range, or that use . E or # are reals. 1.2
PI() is real type
Some functions/operators return reals SIN(3)
16 bit char array
Variables ending in $ are created as strings. VAR S$
Text in quotation marks, and label names (@EXAMPLE) are strings. "HELLO"
Some functions/operators return strings STR$(7)
Strings are passed to functions and assigned by reference. B$=A$:A$="TEST" 'B$ is "TEST" as well
Array of integers, reals, or strings. 1D-4D
adding  to a variable definition creates an array. VAR A$[12,7]
Arrays are passed to functions and assigned by reference.
When function arguments are left out null is passed. SPOFS 0,,7
If an OUT variable is left undefined, null is returned. DEF TEST OUT B:END
Leaving out the value after = will try to set a variable to null, causing an error. X=
When null is used in place of an OUT variable, the value is thrown out. GPAGE OUT ,W
Inside a function, OUT variables start off as undefined. DEF TEST OUT B ...
When assigned to, they take the type of whatever is assigned to them. DEF TEST OUT B:B="HI"
When returned from a function, they become null.
When an array is created but the DIM/VAR hasn't been executed, it stays as undefined. GOTO @SKIP:DIM A:@SKIP:A="LOL"