O'Reilly logo

Learning WML, and WMLScript by Martin Frost

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Type Operators

By now, you’ve heard a lot about the different datatypes WMLScript provides and how it converts among these as necessary.

There are occasions where you may want to find the exact datatype of a value, or at the very least check whether it’s invalid or not. (invalid usually represents some sort of error condition, so this last check is often equivalent to checking whether some operation went well.)

Fortunately, WMLScript provides operators for testing datatype and validity.

The typeof operator returns an integer representing the datatype of its argument. It doesn’t attempt to do any conversions: the integer indicates the datatype of the argument.

Because the typeof operator never attempts to convert its argument and returns an integer value even when its argument is invalid, it never returns an invalid value. It always returns an integer.

Table 11-1 gives the five integer values that represent the five WMLScript datatypes.

Table 11-1. Values Given by typeof

Datatype

typeof Value

Integer

0

Floating point

1

String

2

Boolean

3

Invalid

4

Often, the typeof operator provides more information than you need. For example, consider a complicated arithmetic expression. You know that the result is either an integer or a floating-point value, unless something went wrong with the evaluation, in which case the result is invalid. You could check if everything went well with something like:

if (typeof result != 4) { /* Type not invalid: result was OK. */ ... } else ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required