1. Klasifikasi
Tipe Data Dasar: Tidak Ditentukan, Null, String, Boolean, Nomor
Tipe Data Kompleks: Objek
Atribut objek didefinisikan dalam bentuk nama dan pasangan nilai yang tidak tertib (nama: nilai).
2. Penjelasan terperinci
1. Tidak ditentukan : Tipe yang tidak ditentukan hanya memiliki satu nilai: tidak ditentukan. Ketika suatu variabel dinyatakan menggunakan VAR tetapi tidak diinisialisasi, nilai variabel ini tidak terdefinisi.
Variabel yang mengandung nilai yang tidak terdefinisi berbeda dari variabel yang belum didefinisikan. Contoh berikut dapat menggambarkan:
Salinan kode adalah sebagai berikut:
var demo1; // dinyatakan tetapi tidak diinisialisasi
waspada (demo1); // tidak ditentukan
waspada (demo2); // laporkan kesalahan, demo2 tidak didefinisikan
2. NULL : Hanya ada satu nilai untuk tipe nol: null. Dari sudut pandang logis, nilai nol mewakili penunjuk objek kosong.
Jika variabel yang ditentukan siap digunakan untuk menyimpan objek di masa mendatang, yang terbaik adalah menginisialisasi variabel ke null daripada nilai lain. Dengan cara ini, hanya dengan secara langsung mendeteksi nilai nol, Anda dapat mengetahui apakah variabel yang sesuai telah menyimpan referensi objek, misalnya:
Salinan kode adalah sebagai berikut:
if (mobil! = null)
{
// Lakukan beberapa operasi pada objek mobil
}
Faktanya, nilai-nilai yang tidak ditentukan berasal dari nilai nol, jadi ECMA-262 menentukan bahwa tes kesetaraan mereka harus mengembalikan true.
peringatan (tidak terdefinisi == null); //BENAR
Meskipun nol dan tidak terdefinisi memiliki hubungan seperti itu, penggunaannya sama sekali berbeda. Dalam kasus apa pun, tidak perlu untuk secara eksplisit menetapkan nilai suatu variabel menjadi tidak terdefinisi, tetapi aturan yang sama tidak berlaku untuk nol. Dengan kata lain, selama variabel yang dimaksudkan untuk menyimpan objek belum menyimpan objek, variabel harus secara eksplisit diizinkan untuk menyimpan nilai nol. Melakukan hal itu tidak hanya mencerminkan konvensi null sebagai penunjuk untuk objek nol, tetapi juga membantu untuk lebih membedakan antara nol dan tidak terdefinisi.
3. Boolean : Tipe Boolean memiliki dua nilai: Benar dan salah. Kedua nilai ini tidak sama dengan nilai numerik, jadi benar tidak harus sama dengan 1, dan false tidak selalu sama 0.
Perlu dicatat bahwa nilai -nilai literal dari tipe boolean sensitif, yaitu, tidak benar atau salah (dan bentuk pencampuran kasus lainnya) adalah nilai boolean, tetapi hanya pengidentifikasi.
Meskipun hanya ada dua nilai literal untuk tipe boolean, semua jenis nilai dalam JavaScript memiliki nilai yang setara dengan nilai dua nilai boolean ini. Untuk mengonversi nilai ke nilai boolean yang sesuai, Anda dapat memanggil fungsi konversi tipe boolean (), misalnya:
Salinan kode adalah sebagai berikut:
var pesan = 'halo dunia';
var messageasboolean = boolean (pesan);
Dalam contoh ini, pesan string dikonversi ke nilai boolean, yang disimpan dalam variabel Messageasboolean. Fungsi boolean () dapat dipanggil pada nilai dari jenis data apa pun dan nilai boolean akan selalu dikembalikan. Adapun apakah nilai yang dikembalikan benar atau salah, itu tergantung pada tipe data untuk mengonversi nilai dan nilai aktualnya. Tabel berikut menunjukkan aturan konversi untuk berbagai tipe data dan objeknya.
Aturan konversi ini sangat penting untuk memahami pelaksanaan otomatis transformasi boolean yang sesuai dalam pernyataan kontrol aliran (seperti pernyataan jika), misalnya:
Salinan kode adalah sebagai berikut:
var pesan = 'halo dunia';
if (pesan) // setara dengan if (boolean (pesan) == true)
{
peringatan ("Nilai itu benar"); // Nilai itu benar
}
Karena transformasi boolean otomatis ini, sangat penting untuk mengetahui persis variabel apa yang digunakan dalam pernyataan kontrol aliran.
4. Nomor: Integer dan Floating Point
4.1 Integer: Saat melakukan perhitungan, semua angka oktal dan heksadesimal akan dikonversi menjadi desimal
4.2 Floating Point: Akurasi tertinggi dari nilai titik mengambang adalah 17 bit, sehingga akurasinya jauh lebih sedikit daripada bilangan bulat saat menghitung aritmatika. Sebagai contoh: hasil 0,1+0,2 bukan 0,3, tetapi 0,3000000000000000000004. Misalnya:
Salinan kode adalah sebagai berikut:
a = 0,2;
B = 0,1;
if (a+b == 0.3) {
peringatan ("halo");
}
kalau tidak{
peringatan ("Hai");
}
Hasilnya akan muncul "Hai", jadi jangan uji nilai titik mengambang tertentu.
4.3 NAN: Non-numerik bukan angka, nilai ini digunakan untuk mewakili kasus di mana operan yang awalnya ingin mengembalikan nilai tidak mengembalikan nilai (ini tidak akan melempar kesalahan).
Nan sendiri memiliki dua karakteristik luar biasa. Pertama, setiap operasi yang melibatkan NAN (mis. NAN/10) akan mengembalikan NAN, fitur yang dapat menyebabkan masalah dalam perhitungan multi-langkah. Kedua, Nan tidak sama dengan nilai apa pun, termasuk Nan itu sendiri. Misalnya:
Salinan kode adalah sebagai berikut:
peringatan (nan == nan); //PALSU
Ada fungsi isnan () di JavaScript. Fungsi ini menerima parameter, yang dapat berupa jenis apa pun, dan fungsi akan membantu kami menentukan apakah parameter ini "bukan nilai numerik". Setelah menerima nilai, isnan () berupaya untuk mengubah nilai ini ke nilai numerik. Beberapa nilai yang bukan nilai numerik dikonversi langsung menjadi nilai numerik, seperti string "10" atau nilai boolean. Nilai apa pun yang tidak dapat dikonversi ke nilai numerik akan menyebabkan fungsi ini mengembalikan true. Misalnya:
Salinan kode adalah sebagai berikut:
waspada (isnan (nan)); //BENAR
peringatan (Isnan (10)); // false (10 adalah nilai numerik)
peringatan (isnan ("10")); // false (dapat dikonversi ke nilai numerik 10)
peringatan (isnan ("biru")); // Benar (tidak dapat dikonversi ke nilai numerik)
waspada (isnan ("bule123")); // Ture (tidak dapat dikonversi ke nilai numerik)
peringatan (isnan (true)); // false (dapat dikonversi menjadi nilai 1)
Ada 3 fungsi yang dapat mengubah nilai non-numerik menjadi nilai numerik: angka (), parseInt () dan parsefloat (). Fungsi pertama, yaitu angka fungsi transformasi (), dapat digunakan untuk tipe data apa pun, sedangkan dua fungsi lainnya secara khusus digunakan untuk mengubah string menjadi nilai numerik. 3 fungsi ini akan mengembalikan hasil yang berbeda untuk input yang sama.
Aturan konversi fungsi angka () adalah sebagai berikut:
● Jika itu adalah nilai boolean, true dan false masing -masing akan digantikan oleh 1 dan 0.
● Jika itu adalah nilai numerik, itu hanya umpan sederhana dan pengembalian.
● Jika itu adalah nilai nol, kembalikan 0
● Jika tidak terdefinisi, kembalikan NAN
● Jika itu adalah string, ikuti aturan berikut:
○ Jika string hanya berisi angka, konversinya menjadi nilai desimal, yaitu, "1" akan menjadi 1, "123" akan menjadi 123, dan "011" akan menjadi 11 (0 terkemuka diabaikan)
○ Jika string berisi format titik mengambang yang valid, seperti "1.1", itu dikonversi ke nomor titik mengambang yang sesuai (juga, terkemuka 0 akan diabaikan)
○ Jika string berisi format heksadesimal yang valid, seperti "0xf", itu dikonversi ke nilai integer desimal dengan ukuran yang sama
○ Jika string kosong, konversinya ke 0
○ Jika string berisi karakter selain dari format di atas, konversinya menjadi NAN
● Jika itu adalah objek, panggil metode Object's ValueOf (), dan kemudian konversi nilai yang dikembalikan sesuai dengan aturan sebelumnya. Jika hasil konversi adalah NAN, metode tostring () dari objek dipanggil, dan kemudian nilai string yang dikembalikan dikonversi secara bergantian sesuai dengan aturan sebelumnya.
Salinan kode adalah sebagai berikut:
var num1 = angka ("halo dunia"); // nan
var num2 = angka (""); // 0
var num3 = angka ("000011"); // 11
var num4 = angka (true); // 1
Karena fungsi angka () lebih rumit dan tidak masuk akal ketika mengonversi string, fungsi parseInt () lebih umum digunakan saat memproses bilangan bulat, dan fungsi parsefloat () sering digunakan saat memproses angka titik mengambang. Untuk detailnya, silakan merujuk ke: http://www.cnblogs.com/yxfield/p/4167954.html
5. String
Jenis string digunakan untuk mewakili urutan karakter yang terdiri dari karakter unicode nol atau lebih 16-bit, yaitu string. String dapat diwakili oleh kutipan tunggal (') atau kutipan ganda (").
Salinan kode adalah sebagai berikut:
var str1 = "halo";
var str2 = 'halo';
Panjang string apa pun dapat diperoleh dengan mengakses properti panjangnya.
Salinan kode adalah sebagai berikut:
alert (str1.length); // output 5
Ada dua cara untuk mengonversi nilai menjadi string. Yang pertama adalah menggunakan metode tostring () yang hampir setiap nilai memiliki.
Salinan kode adalah sebagai berikut:
var usia = 11;
var ageasstring = usia.toString (); // string "11"
var found = true;
var foundasString = found.toString (); // string "true"
Nilai numerik, boolean, objek dan string semuanya memiliki metode tostring (). Tetapi nilai nol dan tidak terdefinisi tidak memiliki metode ini.
Dalam kebanyakan kasus, memanggil metode tostring () tidak harus melewati parameter. Namun, saat memanggil metode ToString () dari nilai numerik, Anda dapat melewati parameter: kardinalitas nilai output.
Salinan kode adalah sebagai berikut:
var num = 10;
alert (num.tostring ()); // "10"
peringatan (num.tostring (2)); // "1010"
peringatan (num.tostring (8)); // "12"
peringatan (num.tostring (10)); // "10"
peringatan (num.tostring (16)); //"A"
Dari contoh ini, kita dapat melihat bahwa dengan menentukan kardinalitas, metode tostring () akan mengubah nilai output. Nilai 10 dapat dikonversi ke format numerik yang berbeda saat mengeluarkan sesuai dengan kardinalitas yang berbeda.
Tanpa mengetahui apakah nilai yang akan dikonversi adalah nol atau tidak terdefinisi, Anda juga dapat menggunakan string fungsi transformasi (), yang dapat mengubah jenis nilai apa pun menjadi string. Fungsi String () mengikuti aturan konversi berikut:
● Jika nilai memiliki metode ToString (), metode ini disebut (tidak ada parameter) dan hasil yang sesuai dikembalikan.
● Jika nilainya nol, kembalikan "NULL"
● Jika nilainya tidak ditentukan, kembalikan "tidak ditentukan"
6. Objek
Objek sebenarnya adalah kumpulan data dan fungsi. Objek dapat dibuat dengan mengeksekusi operator baru diikuti dengan nama jenis objek yang akan dibuat. Dengan membuat instance tipe objek dan menambahkan properti dan (atau) metode ke dalamnya, Anda dapat membuat objek khusus.
var o = objek baru ();
Properti dan metode jenis objek apa pun juga ada di objek yang lebih spesifik. Setiap contoh objek memiliki sifat dan metode berikut:
● Konstruktor (Konstruktor) - Menyimpan fungsi yang digunakan untuk membuat objek saat ini
● HASOWNPROPERTY (PropertiyName) - Digunakan untuk memeriksa apakah properti yang diberikan ada dalam instance objek saat ini (bukan dalam prototipe instance). Di mana, nama properti (PropertiTyName) sebagai parameter harus ditentukan dalam formulir string (misalnya: o.hasownproperty ("name"))
● Isprototipe (objek) - digunakan untuk memeriksa apakah objek yang masuk adalah prototipe objek lain
● PropertyIseNumerable (PropertiDyName) - Digunakan untuk memeriksa apakah properti yang diberikan dapat disebutkan menggunakan pernyataan FOR -IN.
● ToString () - Mengembalikan representasi string dari objek
● Nilai () - Mengembalikan representasi string, numerik atau boolean objek. Biasanya nilai pengembalian metode tostring () adalah sama.
3. Tes kecil
Salinan kode adalah sebagai berikut:
Tipeof (Nan)
Tipeof (Infinity)
Tipeof (nol)
Tipeof (tidak ditentukan)
Banyak wawancara akan mengajukan pertanyaan di atas ~~
Di atas adalah pengantar 6 tipe data JavaScript ini. Pernahkah Anda memahaminya dengan jelas? Saya harap Anda dapat meningkatkan setelah membaca artikel ini.