javascript怎么进行强制类型转换
强制转换方法:1、使用ToString()、ToNumber()或ToBoolean()方法;2、使用String()、Number()或Boolean()方法;3、使用“+”或“-”运算符;4、使用“if()”、“while()”等语句。
本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
一、类型转换规则
1.ToString
对于普通对象来说,除非自行定义toString方法,否则就会调用Object.prototype.toString()方法,如果对象有自己的toString方法,字符串化就会调用该方法并使用其返回值。
2.ToNumber
- 对于基本类型其中true转换为1,false转换为0;undefined 转换为 NaN,null 转换为 0。
- 对于对象类型会首先转换成为基本类型值如果返回的是非数字的基本类型值,则再遵循基本类型转换规则将其强制转换为数字。为了将值转换为相应的基本类型值,抽象操作ToPrimitive会首先检查该值是否有 valueOf() 方法。如果有并且返回基本类型值,再使用该值进行强制类型转换。如果没有就使用 toString() 的返回值(如果存在)来进行强制类型转换。如果 valueOf() 和 toString() 均不返回基本类型值,会产生 TypeError 错误。
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
3.ToBoolean
JavaScript中的值可以分为能被强制转换为false的值和能被强制转换为true的值两类。
假值:
- undefined
- null
- false
- +0、-0、NaN
- ""
真值:除了以上列表的都可以理解为是真值,所有对象都是真值
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
二、显示强制类型转换
1.字符串与数字之间的显示转换
字符串和数字之间的转换是通过 String(..) 和 Number(..) 这两个内建函数。
除了 String(..) 和 Number(..) 以外,还有其他方法可以实现字符串和数字之间的显式 转换:
let a = 42; let b = a.toString(); let c = "3.14"; let d = +c; b; // "42" d; // 3.14
a.toString() 是显式的,不过其中涉及隐式转换。因为 toString() 对 42 这样的基本类型值不适用,所以 JavaScript 引擎会自动为 42 创建一个封装对象,然后对该对象调用 toString()。这里显式转换中含有隐式转换。
2.显示转换为布尔值
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
虽然 Boolean(..) 是显式的,但并不常用。显式强制类型转换为布尔值最常用的方法是 !!
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
【推荐学习:javascript高级教程】
三、隐式强制类型转换
1.字符串和数字之间的隐式强制类型转换
(1)+运算符
即能用于数字加法,也能用于字符串拼接
如果 + 的其中一个操作数是字符串(或者通过对其调用 ToPrimitive 抽象操作得到字符串), 则执行字符串拼接;否则执行数字加法。因为数组的 valueOf() 操作无法得到简单基本类型值,于是它转而调用 toString()。因此下例中的两个数组变成了 "1,2" 和 "3,4"。+ 将它们拼接后返回 "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"
可以使用+运算符进行字符串转换,将数字和空字符串 "" 相 + 来将其转换为字符串
let a = 42; let b = a + ""; b; // "42"
a + ""(隐式)和前面的String(a)(显式)之间有一个细微的差别需要注意。
根据 ToPrimitive抽象操作规则,a + ""会对a调用valueOf()方法,然后通过ToString抽象 操作将返回值转换为字符串。而 String(a) 则是直接调用 ToString()。它们最后返回的都是字符串,但如果 a 是对象而非数字结果可能会不一样
let a = { valueOf: function() { return 42; }, toString: function() { return 4; } }; a + ""; // "42" String( a ); // "4"
(2)从字符串强制类型转换为数字的情况
-是数字减法运算符,因此a - 0会将a强制类型转换为数字。也可以使用a * 1和a /1,因为这两个运算符也只适用于数字,只不过这样的用法不太常见
let a = [3]; let b = [1]; a - b; // 2
2.隐式强制类型转换为布尔值
下面的情况会发生 布尔值隐式强制类型转换:
(1) if (..)语句中的条件判断表达式。
(2) for ( .. ; .. ; .. )语句中的条件判断表达式(第二个)。
(3) while (..) 和 do..while(..) 循环中的条件判断表达式。
(4) ? :中的条件判断表达式。
(5) 逻辑运算符 ||(逻辑或)和 &&(逻辑与)左边的操作数(作为条件判断表达式)。
以上情况中,非布尔值会被隐式强制类型转换为布尔值,遵循前面介绍过的 ToBoolean 抽象操作规则。
更多编程相关知识,请访问:编程入门!!
Atas ialah kandungan terperinci javascript怎么进行强制类型转换. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian Pengenalan: Dengan perkembangan teknologi yang berterusan, teknologi pengecaman pertuturan telah menjadi bahagian penting dalam bidang kecerdasan buatan. Sistem pengecaman pertuturan dalam talian berdasarkan WebSocket dan JavaScript mempunyai ciri kependaman rendah, masa nyata dan platform merentas, dan telah menjadi penyelesaian yang digunakan secara meluas. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian.

WebSocket dan JavaScript: Teknologi utama untuk merealisasikan sistem pemantauan masa nyata Pengenalan: Dengan perkembangan pesat teknologi Internet, sistem pemantauan masa nyata telah digunakan secara meluas dalam pelbagai bidang. Salah satu teknologi utama untuk mencapai pemantauan masa nyata ialah gabungan WebSocket dan JavaScript. Artikel ini akan memperkenalkan aplikasi WebSocket dan JavaScript dalam sistem pemantauan masa nyata, memberikan contoh kod dan menerangkan prinsip pelaksanaannya secara terperinci. 1. Teknologi WebSocket

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian Dalam era digital hari ini, semakin banyak perniagaan dan perkhidmatan perlu menyediakan fungsi tempahan dalam talian. Adalah penting untuk melaksanakan sistem tempahan dalam talian yang cekap dan masa nyata. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian dan memberikan contoh kod khusus. 1. Apakah itu WebSocket? WebSocket ialah kaedah dupleks penuh pada sambungan TCP tunggal.

Pengenalan kepada cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata: Dengan populariti Internet dan kemajuan teknologi, semakin banyak restoran telah mula menyediakan perkhidmatan pesanan dalam talian. Untuk melaksanakan sistem pesanan dalam talian masa nyata, kami boleh menggunakan teknologi JavaScript dan WebSocket. WebSocket ialah protokol komunikasi dupleks penuh berdasarkan protokol TCP, yang boleh merealisasikan komunikasi dua hala masa nyata antara pelanggan dan pelayan. Dalam sistem pesanan dalam talian masa nyata, apabila pengguna memilih hidangan dan membuat pesanan

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Pengenalan: Hari ini, ketepatan ramalan cuaca sangat penting kepada kehidupan harian dan membuat keputusan. Apabila teknologi berkembang, kami boleh menyediakan ramalan cuaca yang lebih tepat dan boleh dipercayai dengan mendapatkan data cuaca dalam masa nyata. Dalam artikel ini, kita akan mempelajari cara menggunakan teknologi JavaScript dan WebSocket untuk membina sistem ramalan cuaca masa nyata yang cekap. Artikel ini akan menunjukkan proses pelaksanaan melalui contoh kod tertentu. Kami

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Penukaran jenis dalam fungsi membolehkan data satu jenis ditukar kepada jenis lain, dengan itu memanjangkan fungsi fungsi. Gunakan sintaks: type_name:=variable.(type). Sebagai contoh, anda boleh menggunakan fungsi strconv.Atoi untuk menukar rentetan kepada nombor dan mengendalikan ralat jika penukaran gagal.

Terokai pelbagai jenis penukaran jenis tersirat dan peranannya dalam pengaturcaraan Pengenalan: Dalam pengaturcaraan, kita selalunya perlu berurusan dengan jenis data yang berbeza. Kadangkala, kita perlu menukar satu jenis data kepada jenis lain untuk melaksanakan operasi tertentu atau memenuhi keperluan khusus. Dalam proses ini, penukaran jenis tersirat adalah konsep yang sangat penting. Penukaran jenis tersirat merujuk kepada proses di mana bahasa pengaturcaraan secara automatik melakukan penukaran jenis data tanpa menyatakan jenis penukaran secara eksplisit. Artikel ini akan meneroka pelbagai jenis penukaran jenis tersirat dan peranannya dalam pengaturcaraan,
