Table of Contents
1. Type conversion rules
2. Display forced type conversion
3. Implicit cast conversion
You can use operators for string conversion, compare numbers with the empty string "" to convert them into strings
a ""(implicit) and the preceding String There is a subtle difference to note between (a)(explicit).
(2) Case of cast from string to number
Home Web Front-end JS Tutorial How to perform forced type conversion in javascript

How to perform forced type conversion in javascript

Apr 19, 2021 pm 02:27 PM
javascript cast type conversion

Force conversion method: 1. Use ToString(), ToNumber() or ToBoolean() method; 2. Use String(), Number() or Boolean() method; 3. Use " " or "- "operator; 4. Use statements such as "if()" and "while()".

How to perform forced type conversion in javascript

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

1. Type conversion rules

1.ToString

For ordinary objects, Unless you define the toString method yourself, the Object.prototype.toString() method will be called. If the object has its own toString method, stringification will call the method and use its return value.

2.ToNumber

  • For basic types, true is converted to 1 and false is converted to 0; undefined is converted to NaN, null is converted to 0.
  • The object type will first be converted into a basic type value. If a non-numeric basic type value is returned, it will then be forced to be converted into a number according to the basic type conversion rules. In order to convert a value to the corresponding primitive type value, The abstract operation ToPrimitive first checks whether the value has a valueOf() method. If there is and returns a basic type value, then use this value for cast. If not, use the return value of toString() (if it exists) to perform the cast. If neither valueOf() nor toString() returns a basic type value, a TypeError will be generated.
let a = {
    valueOf:function(){
        return "42";
    }
};
let b = {
    toString:function(){
        return "42";
    }
};
let c = [4,2];
c.toString = function(){
    return this.join(""); //"42"
};

Number(a);     //42
Number(b);     //42
Number(c);     //42
Number('');    //0
Number([]);    //0
Number(["abc"];//NaN
Copy after login

3.ToBoolean

Values ​​in JavaScript can be divided into values ​​that can be forced to false and values ​​that can be forced Converts two types of values ​​to true.
False value:

  • undefined
  • null
  • false
  • 0, -0, NaN
  • ""

True value: Except for the above list, all objects can be understood as true values, and all objects are true values

let a1 = new Boolean( false );
let b1 = new Number( 0 );
let c1 = new String( "" );
let d1 = Boolean(a1 && b1 && c1); //true

let a2 = [];
let b2 = {};
let c2 = function(){};
let d2 = Boolean(a2 && b2 && c2); //true
Copy after login

2. Display forced type conversion

1. Display conversion between strings and numbers

Strings and numbers The conversion is through the two built-in functions String(..) and Number(..).
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. Display 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 a type to a Boolean value 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

[Recommended learning: javascript advanced tutorial]

3. Implicit cast conversion

1. Implicit cast conversion between strings and numbers

( 1) The operator

can be used for both numerical addition and string concatenation

if one of the operands is a string (or If a string is obtained by calling the ToPrimitive abstract operation on it), 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, compare numbers with the empty string "" to convert them into strings

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

a ""(implicit) and the preceding String There is a subtle difference to note between (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. They finally return 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

-Yes 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

2. Implicit mandatory type Convert to Boolean value

Implicit cast conversion of Boolean value will occur in the following situations:

(1) Conditional judgment expression in if (..) statement .

(2) The conditional expression (second) in the for ( .. ; .. ; .. ) statement.

(3) Conditional expressions in while (..) and do..while(..) loops.

(4) ? :Conditional judgment expression in .

(5) The operand on the left side of logical operators || (logical OR) and && (logical AND) (as a conditional expression).

In the above case, non-Boolean values ​​will be implicitly cast to Boolean values, following the ToBoolean abstract operation rules introduced earlier.

For more programming-related knowledge, please visit: Introduction to Programming! !

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

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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to implement an online speech recognition system using WebSocket and JavaScript How to implement an online speech recognition system using WebSocket and JavaScript Dec 17, 2023 pm 02:54 PM

How to use WebSocket and JavaScript to implement an online speech recognition system Introduction: With the continuous development of technology, speech recognition technology has become an important part of the field of artificial intelligence. The online speech recognition system based on WebSocket and JavaScript has the characteristics of low latency, real-time and cross-platform, and has become a widely used solution. This article will introduce how to use WebSocket and JavaScript to implement an online speech recognition system.

WebSocket and JavaScript: key technologies for implementing real-time monitoring systems WebSocket and JavaScript: key technologies for implementing real-time monitoring systems Dec 17, 2023 pm 05:30 PM

WebSocket and JavaScript: Key technologies for realizing real-time monitoring systems Introduction: With the rapid development of Internet technology, real-time monitoring systems have been widely used in various fields. One of the key technologies to achieve real-time monitoring is the combination of WebSocket and JavaScript. This article will introduce the application of WebSocket and JavaScript in real-time monitoring systems, give code examples, and explain their implementation principles in detail. 1. WebSocket technology

How to use JavaScript and WebSocket to implement a real-time online ordering system How to use JavaScript and WebSocket to implement a real-time online ordering system Dec 17, 2023 pm 12:09 PM

Introduction to how to use JavaScript and WebSocket to implement a real-time online ordering system: With the popularity of the Internet and the advancement of technology, more and more restaurants have begun to provide online ordering services. In order to implement a real-time online ordering system, we can use JavaScript and WebSocket technology. WebSocket is a full-duplex communication protocol based on the TCP protocol, which can realize real-time two-way communication between the client and the server. In the real-time online ordering system, when the user selects dishes and places an order

How to implement an online reservation system using WebSocket and JavaScript How to implement an online reservation system using WebSocket and JavaScript Dec 17, 2023 am 09:39 AM

How to use WebSocket and JavaScript to implement an online reservation system. In today's digital era, more and more businesses and services need to provide online reservation functions. It is crucial to implement an efficient and real-time online reservation system. This article will introduce how to use WebSocket and JavaScript to implement an online reservation system, and provide specific code examples. 1. What is WebSocket? WebSocket is a full-duplex method on a single TCP connection.

Type conversion of golang function Type conversion of golang function Apr 19, 2024 pm 05:33 PM

In-function type conversion allows data of one type to be converted to another type, thereby extending the functionality of the function. Use syntax: type_name:=variable.(type). For example, you can use the strconv.Atoi function to convert a string to a number and handle errors if the conversion fails.

JavaScript and WebSocket: Building an efficient real-time weather forecasting system JavaScript and WebSocket: Building an efficient real-time weather forecasting system Dec 17, 2023 pm 05:13 PM

JavaScript and WebSocket: Building an efficient real-time weather forecast system Introduction: Today, the accuracy of weather forecasts is of great significance to daily life and decision-making. As technology develops, we can provide more accurate and reliable weather forecasts by obtaining weather data in real time. In this article, we will learn how to use JavaScript and WebSocket technology to build an efficient real-time weather forecast system. This article will demonstrate the implementation process through specific code examples. We

Simple JavaScript Tutorial: How to Get HTTP Status Code Simple JavaScript Tutorial: How to Get HTTP Status Code Jan 05, 2024 pm 06:08 PM

JavaScript tutorial: How to get HTTP status code, specific code examples are required. Preface: In web development, data interaction with the server is often involved. When communicating with the server, we often need to obtain the returned HTTP status code to determine whether the operation is successful, and perform corresponding processing based on different status codes. This article will teach you how to use JavaScript to obtain HTTP status codes and provide some practical code examples. Using XMLHttpRequest

Implicit type conversion: An exploration of different variations of types and their applications in programming Implicit type conversion: An exploration of different variations of types and their applications in programming Jan 13, 2024 pm 02:54 PM

Explore the different types of implicit type conversions and their role in programming Introduction: In programming, we often need to deal with different types of data. Sometimes, we need to convert one data type to another type in order to perform a specific operation or meet specific requirements. In this process, implicit type conversion is a very important concept. Implicit type conversion refers to the process in which the programming language automatically performs data type conversion without explicitly specifying the conversion type. This article will explore the different types of implicit type conversions and their role in programming,

See all articles