Home  >  Article  >  Web Front-end  >  Understanding data type conversion in JavaScript

Understanding data type conversion in JavaScript

青灯夜游
青灯夜游forward
2020-10-19 17:50:152065browse

Understanding data type conversion in JavaScript

In JavaScript, data types are used to classify a specific type of data, determining the values ​​that can be assigned to that type and the operations that can be performed on it.

While JavaScript automatically converts many values ​​due to type coercion, to achieve the desired results it is often best to manually convert values ​​between types.

This tutorial will guide you in converting JavaScript's basic data types, including numbers, strings, and Boolean values.

Implicit conversion

As a programming language, JavaScript has a high tolerance for unexpected values. Therefore, JavaScript will try to convert unexpected values ​​instead of rejecting them outright. This implicit conversion is called type coercion.

Some methods automatically convert values ​​in order to use them. The alert() method accepts a string as parameter, but it will automatically convert other types to string. Therefore, we can pass a numeric value to the method:

alert(8.5);

If we run the above line of code, the browser will return a pop-up warning dialog box showing the 8.5 value, but it will be converted to a string .

When working with strings that can be evaluated as numbers via mathematical operators, you will find that JavaScript is able to handle these values ​​by implicitly converting the string to a number, as shown in the example below.

// Subtraction
"15" - "10";

Output: 5

// Modulo
"15" % "10";

Output: 5

However, not every operator works as expected. There are obvious problems with the operator since it can represent addition or string concatenation.

// When working with strings, + stands for concatenation
"2" + "3";

Output: "23"

Since the operator is multipurpose, the string values ​​2 and 3 are concatenated into the string value 23, despite being numeric strings, rather than adding together to become the number 5.

Because ambiguities can exist and sometimes lead to unexpected results, it is usually best to explicitly convert as many data types as possible in your code. This will help manage input from users and handle errors.

Convert a value to a string

You can explicitly convert a value to a string by calling String() or N.ToString().

Using the String() function, let us convert a Boolean value to a string by passing the value true to the parameter of String().

String(true);

When we do this, the string literal "true" will be returned.

Output: "true"

Alternatively, we can pass a number to the function.

String(49);

will return the string literal of the number.

Output: "49"

Let us use the String() function with a variable. We will assign a numeric value to the variable odyssey and then use the typeof operator to check the type.

let odyssey = 2001;
console.log(typeof odyssey);

Output: number

At this time, the variable odyssey is assigned the value of 2001, and we have confirmed that it is a number.

Now, let's reassign odyssey to its string equivalent and then use typeof to confirm that we have successfully converted the variable's value from a number to a string.

odyssey = String(odyssey); // "2001"
console.log(typeof odyssey);

Output: string

In the above example, we have confirmed that odyssey is reassigned to a string value after data type conversion.

We can use n.toString() in a similar way. We can replace n with a variable:

let blows = 400;
blows.toString();

The variable blow will be returned as a string.

Output: "400"

Alternatively, we can put the value inside parentheses instead of n.toString() variable:

(1776).toString(); // returns "1776"
(false).toString(); // returns "false"
(100 + 200).toString(); // returns "300"

Pass Using String() or n.toString(), we are able to explicitly convert a Boolean or numeric data type value to a String value to ensure that the code behaves as we expect.

Convert value to number

When converting value to numeric data type, we will use number() method. First, we'll convert a numeric text string to a number, but we can also convert Boolean values.

We can pass a number string to the number() method:

Number("1984");

The string will be converted to a number and will no longer be enclosed in quotes .

Output: 1984

We can also assign a string to a variable and then convert it.

let dalmatians = "101";
Number(dalmatians);

Output: 101

The string literal "101" is converted to the number 101 via its variables.

Blank strings or empty strings will be converted to 0.

Number(" "); // returns 0
Number(""); // returns 0

Note that non-numeric strings will be converted to NaN, which means non-numeric. This includes numbers separated by spaces.

Number("twelve"); // returns NaN
Number("20,000"); // returns NaN
Number("2 3"); // returns NaN
Number("11-11-11"); // returns NaN

For Boolean data type, the value of false is 0 and the value of true is 1.

Number(false); // returns 0
Number(true); // returns 1

The function of the method is to convert non-numeric data types into numbers.

Convert a value to a Boolean value

To convert a number or string to a Boolean value, you can use the Boolean() method. This is useful for determining whether the user entered data into a text field, for example.

Any value that is interpreted as null, such as the number 0, the empty string or undefined value, NaN, or null, is converted to false.

Boolean(0); // returns false
Boolean(""); // returns false
Boolean(undefined); // returns false
Boolean(NaN); // returns false
Boolean(null); // returns false

Other values ​​will be converted to true, including string literals consisting of spaces.

Boolean(2000); // returns true
Boolean(" "); // returns true
Boolean("Maniacs"); // returns true

Note that "0" as a string literal will convert to true since it is a non-empty string value:

Boolean("0");   // returns true

将数字和字符串转换为布尔值可以允许我们在二进制术语中计算数据,并且可以用于程序中的控制流。

相关免费学习推荐:js视频教程

The above is the detailed content of Understanding data type conversion in JavaScript. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:digitalocean.com. If there is any infringement, please contact admin@php.cn delete