Gunakan tidak tepat JavaScript
bab ini kita akan membahas penggunaan kesalahan JavaScript.
Aplikasi kesalahan operator penugasan
Dalam program JavaScript jika Anda menggunakan pernyataan kondisional jika operator penugasan adalah tanda sama dengan (=) akan menghasilkan hasil kesalahan, pendekatan yang benar adalah dengan menggunakan perbandingan dua tanda sama (==).
jika pernyataan kondisional mengembalikan false (kami berharap) karena x tidak sama dengan 10:
jika pernyataan kondisional mengembalikan benar (bukan bahwa kita diharapkan) pernyataan dieksekusi karena kondisi untuk tugas x 10,10 benar:
jika pernyataan kondisional kembali palsu (bukan apa yang kita harapkan) pernyataan dieksekusi karena kondisi untuk tugas x 0,0 adalah palsu:
Mengembalikan nilai dari variabel tugas. |
Kesalahan umum perbandingan
Dibandingkan konvensional, tipe data diabaikan, jika pernyataan kondisi berikut mengembalikan nilai true:
Dalam operasi perbandingan yang ketat, perhitungan identitas === operator, sedangkan nilai ekspresi memeriksa jenis, kondisi berikut jika pernyataan kembali palsu:
Kesalahan ini sering terjadi pada pernyataan switch, beralih pernyataan dihitung dengan menggunakan operator identitas (===) dibandingkan:
Contoh berikut akan mengeksekusi peringatan pop:
Contoh berikut ini tidak konsisten karena jenis tidak melakukan popup peringatan:
Menambah dan Pertimbangan Connection
Selain dari dua angka bersama.
Connection string untuk menghubungkan dua.
Selain dan JavaScript yang terhubung menggunakan operator +.
Selanjutnya, kita bisa melihat dua angka bersama dan terhubung ke sejumlah nomor dan perbedaan dengan cara misalnya:
Menggunakan variabel menambahkan hasilnya tidak konsisten:
var y = 5;
var z = x + y; Hasil // z adalah 15
var x = 10;
var y = "5";
var z = x + y; Hasil // z adalah "105"
Coba »
Perhatikan penggunaan floating-point Data
JavaScript Semua data yang didasarkan pada 64-bit floating point tipe data (float) untuk menyimpan.
Semua bahasa pemrograman, termasuk JavaScript, floating akurasi titik data yang sulit untuk menentukan:
var y = 0,2;
var z = x + y Hasil // z adalah 0,3
jika (z == 0.3) // Mengembalikan palsu
Coba »
Aku memecahkan masalah ini, Anda dapat menggunakan perkalian bilangan bulat dan pembagian untuk memecahkan:
Cabang tali JavaScript
Kami menggunakan line break untuk menjalankan pernyataan JavaScript dalam string:
Namun, dalam string kembali kereta langsung sedang diberikan untuk:
Kita bisa memilih alat pengembangan atau tekan F12 untuk melihat pesan error:
string line istirahat perlu menggunakan backslash (\), sebagai berikut:
salah koma
Contoh berikut, karena koma yang salah, jika blok pernyataan kode tidak akan dieksekusi:
Kembali Kewaspadaan pernyataan
JavaScript adalah default otomatis berakhir pada baris terakhir kode.
Dua contoh berikut mengembalikan hasil yang sama (tidak titik koma):
JavaScript juga dapat digunakan untuk mengakhiri sebuah pernyataan multi-line.
Contoh berikut mengembalikan hasil yang sama:
Namun, contoh-contoh berikut dari hasil dikembalikanterdefinisi:
Mengapa ada hasil tersebut? Karena dalam JavaScript, contoh yang konsisten 4 kode dan kode berikut:
function myFunction(a) { var power = 10; return; // 分号结束,返回 undefined a * power; }
menyelesaikan
Jika itu adalah pernyataan yang tidak lengkap, sebagai berikut:
var
JavaScript akan mencoba untuk membaca pernyataan baris kedua:
power = 10;
Namun, karena pernyataan ini selesai:
return
JavaScript akan secara otomatis mematikan pernyataan:
return;
Dalam JavaScript, titik koma adalah opsional.
Sejak pengembalian adalah kalimat lengkap, itu akan mematikan pernyataan kembali JavaScript.
Catatan: Jangan melanggar garis pernyataan kembali. |
Gunakan nama indeks array
Banyak bahasa pemrograman memungkinkan penggunaan nama sebagai indeks array.
Untuk menggunakan nama sebagai indeks dari array disebut array asosiatif (atau hash).
JavaScript tidak mendukung penggunaan nama untuk array indeks, hanya indeks numerik.
contoh
orang [0] = "John" ;
orang [1] = "Doe" ;
orang [2] = 46;
var x = person.length; // Person.length mengembalikan 3
var y = orang [0]; // Orang [0] mengembalikan "John"
Coba »
Dalam JavaScript, menggunakan nama obyek sebagai indeks.
Jika Anda menggunakan nama sebagai indeks saat mengakses array, JavaScript akan mendefinisikan array standar objek.
Setelah melakukan operasi ini, metode dan properti dari array tidak akan lagi digunakan, jika tidak maka akan menghasilkan kesalahan:
contoh
orang [ "firstName"] = " John";
orang [ "lastName"] = " Doe";
orang [ "usia"] = 46 ;
var x = person.length; // person.length kembali 0
var y = orang [0]; // Orang [0] mengembalikan terdefinisi
Coba »
Tentukan elemen array, dan akhirnya tidak dapat menambahkan koma
Kesalahan didefinisikan:
points = [40, 100, 1, 5, 25, 10,];
Definisi yang benar dari jalan:
points = [40, 100, 1, 5, 25, 10];
Mendefinisikan objek, dan akhirnya tidak dapat menambahkan koma
Kesalahan didefinisikan:
websites = {site:"本教程", url:"www.w3big.com", like:460,}
Definisi yang benar dari jalan:
websites = {site:"本教程", url:"www.w3big.com", like:460}
Undefined tidak Null
Dalam JavaScript, null untuk objek, terdefinisi untuk variabel, properti dan metode.
Benda didefinisikan hanya mungkin sebagai null, jika tidak terdefinisi.
Jika kita ingin menguji apakah kehadiran objek, ketika objek tidak didefinisikan belum akan melempar kesalahan.
Penggunaan yang salah:
if (myObj !== null && typeof myObj !== "undefined")
Cara yang benar adalah bahwa kita perlu menggunakan typeof untuk mendeteksi apakah sebuah objek telah didefinisikan:
if (typeof myObj !== "undefined" && myObj !== null)
blok lingkup
JavaScript tidak membuat lingkup baru di setiap blok kode, lingkup umum dari setiap blok kode yang global.
Berikut variabel kode i mengembalikan 10 bukan terdefinisi: