


Pengenalan ringkas kepada penukaran jenis tersirat bagi kemahiran type_javascript data JavaScript
Jenis data JavaScript dibahagikan kepada enam jenis, iaitu null, undefined, boolean, string, number dan object. objek ialah jenis rujukan, dan lima yang lain adalah jenis asas atau jenis primitif. Kita boleh menggunakan kaedah typeof untuk mencetak jenis sesuatu yang dimiliki. Untuk membandingkan pembolehubah jenis yang berbeza, anda mesti menukar jenis, yang dipanggil penukaran jenis juga dipanggil penukaran tersirat. Penukaran tersirat biasanya berlaku dengan penambahan operator, penolakan, pendaraban, pembahagian, sama dan kurang daripada, lebih besar daripada, dsb. .
typeof '11' //string typeof(11) //number '11' < 4 //false
Bab ini secara berasingan memperkenalkan penukaran jenis data tersirat dalam JavaScript. Pemahaman yang baik mengenainya boleh memudahkan banyak operasi dalam aplikasi praktikal.
Lihat contoh kod berikut:
var arr = [5]; console.log(arr+"");
Kod di atas ialah operasi untuk menukar tatasusunan secara tersirat kepada rentetan bukankah ia lebih mudah daripada kaedah berikut:
var arr = [5]; console.log(arr.toString());
Penukaran jenis data tersirat seperti di atas digunakan secara meluas dalam pengekodan sebenar.
1. Penukaran jenis data antara jenis nilai:
Untuk jenis data dalam JavaScript, sila rujuk bab "Penjelasan terperinci tentang jenis data JavaScript".
(1). Nombor dan rentetan menggunakan operator:
Jika anda menggunakan operator untuk mengendalikan nombor dan rentetan, nombor akan ditukar kepada rentetan dahulu, dan kemudian operasi penggabungan rentetan akan dilakukan:
var antzone = "antzone"; var num = 8; console.log(antzone+num);
(2). Operasi Operator yang melibatkan nilai Boolean:
Jika terdapat jenis Boolean yang terlibat, nilai Boolean akan terlebih dahulu ditukar kepada nombor atau rentetan yang sepadan, dan kemudian sambungan rentetan yang sepadan atau operasi aritmetik akan dilakukan.
var bool = true; var num = 8; console.log(bool + num);
Kod di atas mula-mula menukar benar kepada nombor 1, dan kemudian melakukan penambahan aritmetik.
var bool = true; var num = "8"; console.log(bool + num);
Nilai Boolean di atas akan ditukar kepada bentuk rentetan yang sepadan "benar", dan kemudian penggabungan rentetan dilakukan.
(3 Operasi tolak:
Jika operasi tolak dilakukan, kedua-dua operan akan ditukar kepada nombor dahulu, dan kemudian operasi aritmetik akan dilakukan:
var bool = true; var num = "8"; console.log(bool - num);
true akan ditukar kepada nombor 1, rentetan "8" akan ditukar kepada nombor 8, dan kemudian operasi aritmetik akan dilakukan.
Perkara yang sama berlaku untuk penukaran pendaraban, pembahagian, lebih besar daripada, kurang daripada dan penolakan, jadi saya tidak akan memberikan contoh lagi.
(4).==Kendalian kesaksamaan:
undefined dan null adalah istimewa. Kedua-duanya menggunakan operator == untuk mengembalikan benar.
console.log(undefined==null);
Apabila membandingkan jenis nilai lain, operan akan ditukar kepada nombor
console.log("3"==3);
Kod di atas akan menukar rentetan "3" kepada nombor dan kemudian membandingkannya.
console.log("1"==true);
Kod di atas akan menukar "1" dan benar kepada nombor masing-masing, kemudian membandingkannya.
2. Tukar jenis rujukan kepada jenis nilai:
Menukar jenis rujukan (objek) kepada jenis nilai adalah lebih rumit Pengedarannya diperkenalkan di bawah.
Dua kaedah pewarisan objek boleh membantu kami merealisasikan fungsi penukaran daripada objek kepada jenis nilai:
(1).toString() kaedah.
(2).valueOf().
Biasanya, kami berpendapat bahawa untuk menukar objek kepada rentetan, anda perlu memanggil kaedah toString() dan untuk menukar objek kepada nombor, anda perlu memanggil kaedah valueOf() tetapi bukan itu mudah apabila ia benar-benar digunakan Lihat contoh kod berikut:
var obj = { webName: "脚本之家", url:"softwhy.com" } console.log(obj.toString());
Seperti yang dapat dilihat daripada kod di atas, kaedah toString() tidak menukar objek menjadi rentetan yang mencerminkan objek ini.
var arr = [1, 2, 3]; console.log(arr.valueOf());
Seperti yang dapat dilihat daripada kod di atas, kaedah valueOf() tidak menukar objek kepada nombor yang mencerminkan objek ini.
var arr = [1, 2, 3]; console.log(arr.toString());
数组对象的toString()方法能够将数组转换为能够反映此数组对象的字符串。
总结如下:
(1).有些对象只是简单继承了toString()或者valueOf()方法,比如第一个例子。
(2).有些对象则不但是继承了两个方法,而且还进行了重写。
所以有些对象的方法能够达成转换成字符串或者数字的目标,有些则不能。
调用toString()或者valueOf()将对象转换成字符串或者数字的规则如下:
调用toString()时,如果对象具有这个方法,则调用此方法;如果此方法返回一个值类型数据,那么就返回这个值类型数据,然后再根据所处的上下文环境进行相关数据类型转换。如果没有toString(),或者此方法返回值并不是一个值类型数据,那么就会调用valueOf()(如果此方法存在的话),如果valueOf()返回一个值类型数据,那么再根据所处的上下文环境进行相关的数据类型转换。
进一步说明:
(1).上面介绍了通常默认情况下valueOf()和toString()方法的作用(将对象转换为数字或者字符串),但是需要注意的是,这并不是硬性规定,也就是说并不是valueOf()方法必须要返回数字或者toString()方法必须要转换为字符串,比如简单继承的这两个方法就无法进行实现转换为数字和字符串的功能,再比如,我们可以自己称谢这两个方法,返回值也没有必要是数字或者字符串。
(2).还有需要特别注意的一点就是,很多朋友认为,转换为字符串首先要调用toString()方法, 其实这是错误的认识,我们应该这么理解,调用toString()方法可以转换为字符串,但不一定转换字符串就是首先调用toString()方法。
看如下代码实例:
var arr = []; arr.valueOf = function () { return "1"; } arr.toString = function () { return "2"; } console.log(arr + "1");
上面的代码中,arr是要被转换为字符串的,但是很明显是调用的valueOf()方法,而没有调用toString()方法。有些朋友可能会有这样的质疑,难道[2]这样的数字转换成字符串"2",不是调用的toString()方法吗。
代码如下:
var arr = [2]; console.log(arr + "1");
其实过程是这样的,首先arr会首先调用valueOf()方法,但是数字的此方法是简单继承而来,并没有重写(当然这个重写不是我们实现),返回值是数组对象本身,并不是一个值类型,所以就转而调用toString()方法,于是就实现了转换为字符串的目的。
总结如下:
大多数对象隐式转换为值类型都是首先尝试调用valueOf()方法。但是Date对象是个例外,此对象的valueOf()和toString()方法都经过精心重写,默认是调用toString()方法,比如使用+运算符,如果在其他算数运算环境中,则会转而调用valueOf()方法。
代码实例如下:
var date = new Date(); console.log(date + "1"); console.log(date + 1); console.log(date - 1); console.log(date * 1);
以上内容是小编给大家介绍的JavaScript数据类型之隐式类型转换的全部内容,希望大家喜欢。

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

Penukaran jenis tersirat yang wujud dalam MySQL termasuk rentetan kepada jenis angka, jenis tarikh dan masa, titik terapung dan jenis integer, nilai NULL, dsb. Pengenalan terperinci: 1. Penukaran jenis tersirat daripada rentetan kepada jenis angka Apabila rentetan dibandingkan atau dikira dengan nilai jenis angka, MySQL akan menukar rentetan itu kepada jenis angka 2. Jenis tersirat jenis tarikh dan masa penukaran. Dalam MySQL, jenis tarikh dan masa juga boleh ditukar secara tersirat dengan jenis data lain 3. Penukaran jenis tersirat bagi jenis titik terapung dan integer, dsb.

Menukar satu jenis data kepada yang lain dipanggil penukaran jenis. Penukaran Jenis Tersirat Penukaran Jenis Tersirat Penukaran Jenis Tersirat Pengkompil menyediakan penukaran jenis tersirat apabila operan mempunyai jenis data yang berbeza. Ia dilakukan secara automatik oleh pengkompil dengan menukar jenis data yang lebih kecil kepada jenis data yang lebih besar. inti,x;floatf;doubled;longintl;Di sini, ungkapan di atas akhirnya dinilai kepada nilai "berganda". Contoh Berikut ialah contoh penukaran jenis tersirat-intx;for(x=97;x<=122;x++){ printf("%c",x);/*Im

Kelebihan parameter lalai dalam fungsi C++ termasuk memudahkan panggilan, meningkatkan kebolehbacaan dan mengelakkan ralat. Kelemahannya ialah fleksibiliti terhad dan sekatan penamaan. Kelebihan parameter variadic termasuk fleksibiliti tanpa had dan pengikatan dinamik. Kelemahan termasuk kerumitan yang lebih besar, penukaran jenis tersirat dan kesukaran dalam penyahpepijatan.

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,

Bahasa Go menggunakan penaipan statik dan melakukan pemeriksaan jenis pada masa penyusunan untuk mengelakkan ralat jenis masa jalan. Jenis asas termasuk integer, terapung, boolean, rentetan dan kepingan bait. Jenis komposit termasuk tatasusunan, kepingan, struktur, antara muka dan saluran. Bahasa Go menyokong inferens jenis dan operator penukaran pelbagai jenis. Jenis alias memudahkan kebolehbacaan dan kebolehselenggaraan kod. Penaipan statik membawa kelebihan keselamatan, prestasi dan kebolehselenggaraan.

Situasi biasa: 1. Gunakan fungsi atau operasi; 2. Penukaran jenis tersirat 3. Gunakan tidak sama dengan (!= atau <>); Nilai; 7. Selektiviti indeks rendah 8. Prinsip awalan paling kiri bagi indeks komposit 9. Keputusan pengoptimum;

Perbezaan antara pembolehubah int dan apungan dalam bahasa C ialah ia mempunyai jenis yang berbeza: int digunakan untuk menyimpan integer, manakala apungan digunakan untuk menyimpan perpuluhan. Saiz storan: int biasanya mengambil masa 4 bait, dan terapung juga mengambil 4 bait. Ketepatan: int mewakili integer tepat, manakala apungan mempunyai ketepatan terhad. Julat: int biasanya berjulat dari -2^31 hingga 2^31-1, manakala apungan mempunyai julat yang lebih luas. Operasi aritmetik: int dan apungan boleh melakukan operasi dan perbandingan aritmetik, tetapi hasilnya mungkin dipengaruhi oleh pengehadan ketepatan. Penukaran jenis: Penukaran jenis eksplisit atau tersirat boleh dilakukan antara int dan float.
