1. Ketik konversi
1.Konversikan ke string
Hal yang menarik tentang nilai Boolean, angka, dan string primitif ECMAScript adalah bahwa mereka adalah objek semu, yang berarti mereka benar-benar memiliki properti dan metode.
menyukai:
Copy kode kodenya sebagai berikut:
var sWarna = "biru";
alert(sColor.length);//menghasilkan "4"
Singkatnya, tiga nilai primitif utama, nilai Boolean, angka, dan string, semuanya memiliki metode toString(). Semua objek yang didefinisikan oleh ECMAScript memiliki metode toString(), baik itu objek semu atau objek nyata.
Metode Boolean toString() hanya menghasilkan output "benar" atau "salah", dan hasilnya ditentukan oleh nilai variabel:
Copy kode kodenya sebagai berikut:
var bDitemukan = salah;
alert(bFound.toString());//menghasilkan "false"
Metode toString() bertipe Number bersifat khusus. Ia memiliki dua mode, yaitu mode default dan mode dasar. Menggunakan mode default, metode toString() hanya menggunakan string yang sesuai untuk menampilkan nilai numerik (apakah itu metode bilangan bulat, bilangan floating point, atau notasi ilmiah).
Copy kode kodenya sebagai berikut:
var iNum1 = 10;
var fNum2 = 10,0;
peringatan(iNum1.toString()); //keluaran "10"
peringatan(fNum2.toString()); //keluaran "10"
Dengan menggunakan mode dasar metode toString() tipe Angka, angka dapat dihasilkan dalam basis (basis) yang berbeda.
Copy kode kodenya sebagai berikut:
var iNum = 10;
peringatan(iNum.toString(2)); //keluaran "1010"
peringatan(iNum.toString(8)); //keluaran "12"
peringatan(iNum.toString(16)); //keluaran "A"
2. Ubah menjadi angka
ECMAScript menyediakan dua metode untuk mengubah nilai primitif non-numerik menjadi angka, yaitu parseInt() dan parseFloat().
Catatan: Hanya ketika metode ini dipanggil pada tipe String (kecuali Nomor) maka metode tersebut dapat berjalan dengan benar.
Misalnya:
Copy kode kodenya sebagai berikut:
var iNum1 = parseInt("1234biru");//mengembalikan 1234
var iNum2 = parseInt("oxA"); //mengembalikan 10
var iNum3 = parseInt("22.5"); //mengembalikan 22
var iNum4 = parseInt("biru"); //mengembalikan NaN
Metode parseInt() juga memiliki mode dasar, yang dapat mengubah biner, oktal, heksadesimal, atau string dasar lainnya menjadi bilangan bulat desimal. Parameter kedua menentukan basis mana yang akan diurai.
Copy kode kodenya sebagai berikut:
var iNum1 = parseInt("AF",16);// mengembalikan 175
var iNum2 = parseInt("10",2); // mengembalikan 2
var iNum3 = parseInt("10",8); //mengembalikan 8
var iNum4 = parseInt("10",10); //mengembalikan 10
Catatan: Jika bilangan desimal mengandung angka 0 di depan, yang terbaik adalah menggunakan basis 10, jika tidak, Anda akan mendapatkan nilai oktal.
Copy kode kodenya sebagai berikut:
var iNum1 = parseInt("010"); // mengembalikan 8
var iNum2 = parseInt("010",8);
var iNum3 = parseInt("010",10);//mengembalikan 10
Metode parseFloat() mirip dengan metode parseInt(). Metode ini memeriksa setiap karakter mulai dari posisi 0 hingga karakter pertama yang tidak valid ditemukan, lalu mengubah string sebelum karakter tersebut menjadi angka. Untuk metode ini, koma desimal pertama adalah karakter yang valid. Jika dua koma desimal digunakan, koma desimal kedua akan dianggap tidak valid. Perbedaan lain dalam menggunakan metode ini adalah string harus mewakili bilangan floating point dalam bentuk desimal.
Copy kode kodenya sebagai berikut:
var fNum1 = parseFloat("1234biru"); //mengembalikan 1234.0
var fNum2 = parseFloat("0xA"); //mengembalikan NaN
var fNum3 = parseFloat("22.5"); //mengembalikan 22.5
var fNum4 = parseFloat("22.34.5");//mengembalikan 22.34
var fNum5 = parseFloat("0908");//mengembalikan NaN
var fNum6 = parseFloat("biru");//mengembalikan NaN
3. Konversi tipe paksa
3 jenis cast yang tersedia di ECMAScript adalah sebagai berikut:
(1).Boolean(nilai)
Konversikan nilai yang diberikan ke tipe Boolean.
Fungsi Boolean() mengembalikan nilai true ketika nilai yang akan dikonversi adalah string, angka bukan nol, atau objek dengan setidaknya satu karakter. Jika nilainya berupa string kosong, angka 0, tidak terdefinisi atau nol, maka akan menghasilkan false.
menyukai:
Copy kode kodenya sebagai berikut:
var b1 = Boolean(""); // salah;
var b2 = Boolean("hai");//benar
var b3 = Boolean(100);//benar
var b4 = Boolean(null);//false
var b5 = Boolean(0);//salah
var b6 = Boolean(Objek baru());//true
(2).Nomor(nilai)
Mengonversi nilai tertentu menjadi angka (bisa berupa bilangan bulat atau angka floating point).
Ingat juga bahwa metode parseInt() dan parseFloat() hanya mengonversi string sebelum karakter pertama yang tidak valid, sehingga "4.5.6" akan dikonversi ke "4.5". Mentransmisikan dengan Number(), "4.5.6" akan mengembalikan NaN karena seluruh nilai string tidak dapat dikonversi ke angka. Jika string dapat dikonversi sepenuhnya, Number() akan menentukan apakah akan memanggil metode parseInt() atau metode parseFloat().
menyukai:
Copy kode kodenya sebagai berikut:
Nomor(salah);//0
Nomor(benar);//1
Nomor (tidak ditentukan);//NaN
Nomor(null);//0
Nomor("5.5");//5.5
Nomor("56");//56
Nomor("5.6.7");//NaN
Nomor(Objek baru());//NaN
Angka(100);//100
(3).String(nilai)
Ubah nilai yang diberikan menjadi string.
Satu-satunya perbedaan dari pemanggilan metode toString() adalah bahwa memberikan nilai null atau tidak terdefinisi akan menghasilkan string tanpa menimbulkan kesalahan:
Copy kode kodenya sebagai berikut:
var s1 = String(batal);//"batal"
var oNull = nol;
var s2 = oNull.toString();//menyebabkan kesalahan
2. Jenis referensi
Tipe referensi biasanya disebut kelas, artinya ketika nilai referensi ditemukan, objek tersebut diproses. ECMAScript mendefinisikan "definisi objek" yang secara logis setara dengan kelas dalam bahasa pemrograman lain.
1. Kelas objek
Semua kelas di ECMAScript diwarisi dari kelas ini, dan semua properti dan metode di kelas Object akan muncul di kelas lain (ditimpa).
Properti kelas Objek:
(1).Konstruktor----Referensi (penunjuk) ke fungsi yang membuat objek. Untuk kelas Object, pointer ini menunjuk ke fungsi object() asli.
(2).Prototipe---- Referensi ke prototipe objek dari objek. Untuk semua kelas, ia mengembalikan sebuah instance dari objek Object secara default.
Metode kelas Objek:
(1).HasOwnProperty(property)----Tentukan apakah objek memiliki atribut tertentu. Properti harus ditentukan sebagai string (misalnya: o.hasOwnProperty("name")).
(2).IsPrototypeOf(object)----Tentukan apakah objek tersebut merupakan prototipe dari objek lain.
(3).PropertyIsEnumerable(property)----Tentukan apakah properti tertentu dapat dihitung menggunakan pernyataan for..in.
(4).ToString()---- Mengembalikan representasi string asli dari objek. Implementasi ECMAScript yang berbeda memiliki nilai yang berbeda.
(5).ValueOf()---- Mengembalikan nilai asli yang paling sesuai dengan objek. Bagi banyak kelas, nilai yang dikembalikan oleh metode ini sama dengan nilai kembalian toString().
2.kelas Boolean
Objek Boolean jarang digunakan dalam ECMAScript, dan meskipun demikian, objek tersebut tidak mudah untuk dipahami.
Misalnya:
Copy kode kodenya sebagai berikut:
var oFalseObject = Boolean baru(salah);
var bResult = oFalseObject && true;//output benar;
Alasan: Dalam ekspresi Boolean, semua objek secara otomatis diubah menjadi true.
3.Nomor kelas
Nilai khusus seperti Number.MAX_VALUE adalah properti statis dari kelas Number. Untuk mendapatkan nilai asli Number dari suatu objek numerik, cukup gunakan metode valueOf():
var iNumber = oNumberObject.valueOf();
Selain metode standar yang diwarisi dari kelas Object, kelas Number memiliki beberapa metode khusus untuk menangani nilai numerik.
metode toFixed():
Mengembalikan representasi string dari angka dengan jumlah tempat desimal yang ditentukan. Metode ini dapat merepresentasikan angka dengan 0 hingga 20 angka desimal. Nilai di luar rentang ini akan menyebabkan kesalahan.
menyukai:
Copy kode kodenya sebagai berikut:
var oNumberObject = Nomor baru(99);
aler(oNumberObject.toFixed(2));//menghasilkan "99,00"
metode toExponential():
Mengembalikan representasi string angka dalam notasi ilmiah. Metode ini juga mengambil parameter yang menentukan jumlah tempat desimal yang akan dihasilkan. Misalnya:
Copy kode kodenya sebagai berikut:
var oNumberObj = Nomor baru(99);
alert(oNumberObj.toExponential(1));//menghasilkan "9.9e+1"
metode toPrecision():
Mengembalikan bentuk angka yang telah ditentukan sebelumnya atau eksponensial, bergantung pada bentuk mana yang paling masuk akal. Ia memiliki satu argumen, yaitu jumlah total digit yang digunakan untuk mewakili suatu bilangan (tidak termasuk eksponen).
Copy kode kodenya sebagai berikut:
var oNumberObj = Nomor baru(99);
peringatan(oNumberObj.toPrecision(1));//menghasilkan "1e+2" ==100
Seperti yang bisa dilihat, metode toPrecision() membulatkan angka tersebut untuk mendapatkan angka yang sedekat mungkin dengan nilai sebenarnya.
menyukai:
Copy kode kodenya sebagai berikut:
var oNumberObj = Nomor baru(99);
alert(oNumberObj.toPrecision(2));// menghasilkan "99"
alert(oNumberObj.toPrecision(3));// menghasilkan "99.0"
Metode toFixed(), toExponential(), dan toPrecision() semuanya melakukan operasi pembulatan untuk mewakili angka dengan jumlah tempat desimal yang benar.
metode toLocaleString():
Bisa ditampilkan dalam format di halaman, misalnya 5210.50 ditampilkan 5.210.50, namun jika digunakan nilainya sebaiknya diganti dalam bentuk parseFloat($("N_YJJE").value.replace(// ,/g, "")); Hapus koma dan dapatkan nilainya.
Catatan: Mirip dengan objek Boolean, objek Number juga penting, namun harus digunakan dengan hemat untuk menghindari potensi masalah. Kapan pun memungkinkan, gunakan representasi angka mentah.
4. Kelas string
Metode valueOf() dan metode toString() pada objek String keduanya mengembalikan nilai asli dari tipe String:
Copy kode kodenya sebagai berikut:
alert(oStringObj.valueOf() == oStringObj.toString());//menghasilkan "benar"
Kelas String memiliki atribut panjang, yang merupakan jumlah karakter dalam string:
Copy kode kodenya sebagai berikut:
var oStringObj = String baru("halo dunia");
alert(oStringObj.length);menghasilkan "11"
Catatan: Meskipun string berisi karakter bita ganda, setiap karakter hanya dihitung sebagai satu karakter.
metode charAt():
Mengembalikan string yang berisi karakter pada posisi yang ditentukan:
Copy kode kodenya sebagai berikut:
var oStringObj = String baru("halo dunia");
peringatan(oStringObj.charAt(1));keluaran "e"
metode charCodeAt():
Mengembalikan string yang berisi kode karakter pada posisi yang ditentukan:
Copy kode kodenya sebagai berikut:
var oStringObj = String baru("halo dunia");
peringatan(oStringObj.charCodeAt(1));keluaran "101"
metode concat():
Digunakan untuk menggabungkan satu atau lebih string ke nilai asli objek String. Objek String asli tetap tidak berubah.
Copy kode kodenya sebagai berikut:
var oStringObj = String baru("halo");
var sResult = oStringObj.concat("world");//oStringObj+"world";
alert(sResult);//menghasilkan "halo dunia"
peringatan(oStringObj);//menghasilkan "halo"
Metode indexOf() dan lastIndexOf() mengembalikan posisi substring yang ditentukan dalam string lain (atau -1, jika substring tidak ditemukan). Perbedaan kedua metode ini adalah indexOf() mulai mencari substring dari awal string (posisi 0), sedangkan lastIndexOf() mulai mencari substring dari akhir string.
localeCompare(), membandingkan string (bandingkan berdasarkan abjad, yang terakhir lebih besar). Metode ini memiliki satu parameter - string yang akan dibandingkan, dan mengembalikan salah satu dari tiga nilai berikut:
1. Jika objek String disusun menurut abjad sebelum string dalam parameter, angka negatif akan dikembalikan (yang paling umum adalah -1, tetapi pengembalian sebenarnya ditentukan oleh implementasi).
2. Jika objek String sama dengan string dalam parameter, 0 dikembalikan.
3. Jika objek String disusun menurut abjad setelah string dalam parameter, kembalikan angka positif (yang paling umum adalah 1, tetapi pengembalian sebenarnya ditentukan oleh implementasi)
metode irisan() dan substring():
Kedua metode mengembalikan substring dari string yang akan diproses, dan keduanya menerima satu atau dua parameter. Parameter pertama adalah posisi awal substring yang ingin diperoleh, dan parameter kedua adalah posisi sebelum akhir substring yang ingin diperoleh (karakter pada posisi terminal tidak termasuk dalam nilai yang dikembalikan). Jika argumen kedua dihilangkan, bit terminasi defaultnya adalah panjang string. Tak satu pun dari metode ini mengubah nilai objek String itu sendiri.
Copy kode kodenya sebagai berikut:
var oStringObj = String baru("halo dunia");
alert(oStringObj.slice(3));//menghasilkan "lo world"
alert(oStringObj.slice(3,7));//menghasilkan "rendah"
Catatan: Untuk parameter negatif, metode irisan() akan menambahkan panjang string ke parameter, dan metode substring() akan memperlakukannya sebagai 0 (yaitu, akan diabaikan).
Copy kode kodenya sebagai berikut:
var oStringObj = String baru("halo dunia");
alert(oStringObj.slice(-3));//outputs "rld" setara dengan pengambilan terbalik
alert(oStringObj.substring(-3));//menghasilkan "halo dunia"
alert(oStringObj.slice(3,-4));//menghasilkan "lo w"
alert(oStringObj.substring(3,-4));//outputs "hel" substring() selalu menggunakan angka yang lebih kecil sebagai bit awal dan angka yang lebih besar sebagai bit akhir.
toLowerCase(), toLocalLowerCase(), toUpperCase() dan toLocaleUpperCase():
Dua metode pertama mengubah string menjadi huruf kecil semua, dan dua metode terakhir digunakan untuk mengubah string menjadi huruf besar semua. Metode toLocalLowerCase() dan toLocaleUpperCase() diimplementasikan berdasarkan wilayah tertentu.
Ingat: semua properti dan metode kelas String dapat diterapkan ke nilai primitif String karena merupakan objek semu.
5. contoh operator
Ada masalah saat menggunakan tipe referensi untuk menyimpan nilai saat menggunakan operator typeof, apa pun tipe objek yang direferensikan, ia mengembalikan "objek". Metode instanceof mengharuskan pengembang untuk secara eksplisit mengonfirmasi bahwa objek tersebut bertipe tertentu. menyukai:
Copy kode kodenya sebagai berikut:
var oStrObj = String baru("halo dunia");
alert(oStrObj instanceof String);//menghasilkan "benar"