How to perform type coercion in javascript

青灯夜游
Release: 2023-01-06 11:13:54
Original
3678 people have browsed it

Force conversion method: 1. Use the String(), Number() or toString() function to convert the display type between strings and numbers; 2. Use the Boolean() function to convert the value to a Boolean value ;3. Use " " and "-" operators to perform implicit type conversion between strings and numbers.

How to perform type coercion in javascript

The operating environment of this tutorial: windows7 system, javascript version 1.8.5, Dell G3 computer.

1. Display forced type conversion between strings and numbers

Conversion between strings and numbers is throughString(..)andNumber(..)These two built-in functions.
In addition to String(..) and Number(..), there are other methods to achieve explicit conversion between strings and numbers:

let a = 42; let b = a.toString(); let c = "3.14"; let d = +c; b; // "42" d; // 3.14
Copy after login

a.toString() is explicit , but there is an implicit conversion involved. Because toString() doesn't work with primitive values like 42, the JavaScript engine automatically creates a wrapper object for 42 and then calls toString() on that object. This explicit conversion contains implicit conversion.

2. Explicit conversion to Boolean value

let a = "0"; let b = []; let c = {}; let d = ""; let e = 0; let f = null; let g; Boolean( a ); // true Boolean( b ); // true Boolean( c ); // true Boolean( d ); // false Boolean( e ); // false Boolean( f ); // false Boolean( g ); // false
Copy after login

Although Boolean(..) is explicit, it is not commonly used. The most common way to explicitly cast to boolean is!!

let a = "0"; let b = []; let c = {}; let d = ""; let e = 0; let f = null; let g; !!a; // true !!b; // true !!c; // true !!d; // false !!e; // false !!f; // false !!g; // false
Copy after login

3. Implicit cast between string and number

(1) Operator

can be used for number addition and string concatenation

If one of the operands is a string (or a string is obtained by calling the ToPrimitive abstract operation on it), then string concatenation is performed; otherwise, numeric addition is performed. Because the array's valueOf() operation cannot get a simple primitive value, it calls toString() instead. So the two arrays in the example below become "1,2" and "3,4". Concatenating them returns "1,23,4".

let a = "42"; let b = "0"; a + b; // "420" let c = 42; let d = 0; c + d; // 42 let x = [1,2]; let y = [3,4]; x + y; // "1,23,4"
Copy after login

You can use operators for string conversion, and compare numbers with the empty string "" to convert it into a string

let a = 42; let b = a + ""; b; // "42"
Copy after login

a " There is a subtle difference to note between "(implicit) and the previous String(a) (explicit).

According to the ToPrimitive abstract operation rules, a "" will call the valueOf() method on a, and then convert the return value into a string through the ToString abstract operation. String(a) calls ToString() directly. What they finally return are strings, but if a is an object rather than a number, the result may be different

let a = { valueOf: function() { return 42; }, toString: function() { return 4; } }; a + ""; // "42" String( a ); // "4"
Copy after login

(2) Case of cast from string to number

- is the numeric subtraction operator, so a - 0 will cast a to a number. You can also use a * 1 and a /1, because these two operators only apply to numbers, but such usage is less common

let a = [3]; let b = [1]; a - b; // 2
Copy after login

[Recommended learning:javascript advanced tutorial

The above is the detailed content of How to perform type coercion in javascript. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!