Type Conversion
The as operator is used for: conversion between primitive types (including Nullable and variant), down-casting of object types.
The conversion rules between primitive types are defined as follows. If the source type is a Nullable type and if the value is null, a run-time exception is raised under debug builds. The behavior is unspecified for release builds.
The result of conversion from a variant type depends on the result of the typeof operator applied to the variant.
Down-casting of an object type returns a reference to the casted object if successful, otherwise null.
Source Type | Destination Type | Result |
---|---|---|
boolean | number | 0 if false, 1 if true |
boolean | int | same as above |
boolean | string | "false" if false, "true" if true |
number | boolean | false if 0 or NaN, otherwise true |
number | int | fractional part is removed, becomes 0 if NaN, may get rounded to between -231 and 231-1 |
number | string | converted to string representation |
int | boolean | false if 0, otherwise true |
int | number | converted to number of same value |
int | string | converted to string representation |
string | boolean | false if the string is empty, otherwise true |
string | number | 0 if the string is empty, a number if the string can be parsed as a string, otherwise NaN |
string | int | equivalent to: as number as int |
Result of typeof(variant) | Destination Type | Result |
---|---|---|
"undefined" | boolean | false |
"undefined" | number | NaN |
"undefined" | int | 0 |
"undefined" | string | "undefined" |
"null" | boolean | false |
"null" | number | 0 |
"null" | int | 0 |
"null" | string | "null" |
"boolean" | any primitive type | equivalent to the result of: boolean as type |
"number" | any primitive type | equivalent to the result of: number as type |
"string" | any primitive type | equivalent to the result of: string as type |
"object" | any primitive type | depends on the actual type of the value |
"object" | any object type | reference to the object if the value is an object of the specified type, otherwise null |