# JavaScript: Type conversion

To show variable type use typeof:

```let value = true;
console.log(typeof value); // boolean```

Let’s convert our variable to string:

```value = String(value); // now value is a string "true"
console.log(typeof value); // string```

Numeric Conversion

Numeric conversion happens in mathematical functions and expressions automatically.

For example, when division / is applied to non-numbers:

`console.log( "6" / "2" ); // 3, strings are converted to numbers`

We can use the Number(value) function to explicitly convert a value to a number:

```let str = "123";
console.log(typeof str); // string

let num = Number(str); // becomes a number 123
console.log(typeof num); // number```

Explicit conversion is usually required when we read a value from a string-based source like a text form but expect a number to be entered.

If the string is not a valid number, the result of such a conversion is `NaN`. For instance:

```let age = Number("an arbitrary string instead of a number");
console.log(age); // NaN, conversion failed```

Examples of numeric conversion:

```console.log( Number(" 123 ") ); // 123
console.log( Number("123z") );  // NaN (error reading a number at "z")
console.log( Number(true) );    // 1
console.log( Number(false) );   // 0```

Please note that null and undefined behave differently here: null becomes zero while undefined becomes NaN.

Boolean Conversion

The conversion rule:

Values that are intuitively “empty”, like 0, an empty string, null, undefined, and NaN, become false.
Other values become true.

For instance:

```console.log( Boolean(1) ); // true
console.log( Boolean(0) ); // false

console.log( Boolean("hello") ); // true
console.log( Boolean("") ); // false```

Summary

The three most widely used type conversions are to string, to number, and to boolean.

String Conversion – Occurs when we output something. Can be performed with `String(value)`. The conversion to string is usually obvious for primitive values.

Numeric Conversion– Occurs in math operations. Can be performed with `Number(value)`.

Boolean Conversion – Occurs in logical operations. Can be performed with Boolean(value).