Apa itu kesalahan ketik dalam javascript?

TypeError adalah kesalahan yang muncul saat ekspresi atau pernyataan dievaluasi, dan tipe ekspresi atau pernyataan tidak kompatibel dengan tipe yang diharapkan

Jenis kesalahan ini dapat terjadi di JavaScript saat Anda mencoba menggunakan nilai yang memerlukan jenis yang berbeda, seperti menggunakan angka dan bukan string

Dalam contoh kode berikut, variabel msg  diberi nilai Hello, world! tetapi kemudian mencoba untuk menetapkan nilai 2 ke variabel "msg" akan menghasilkan

var x = "Hello, world!";
var y = 2;
1 karena angka tidak kompatibel dengan string

var msg = "Hello, world!";
msg = 2;
_

Dalam JavaScript, Anda biasanya dapat menentukan jenis ekspresi berdasarkan jenis variabel yang ditetapkan padanya

Dalam contoh kode berikut, variabel

var x = "Hello, world!";
var y = 2;
_2 diberi nilai Hello, world! dan variabel
var x = "Hello, world!";
var y = 2;
4 diberi nilai 2

var x = "Hello, world!";
var y = 2;

Karena

var x = "Hello, world!";
var y = 2;
2 diberi string dan
var x = "Hello, world!";
var y = 2;
4 diberi nomor, kita dapat mengatakan bahwa
var x = "Hello, world!";
var y = 2;
2 bertipe string dan
var x = "Hello, world!";
var y = 2;
4 bertipe nomor

Kita juga dapat menggunakan operator

console.log(typeof x);
_0 untuk menentukan jenis ekspresi

Dalam contoh kode berikut, operator

console.log(typeof x);
_0 digunakan untuk menentukan jenis variabel
var x = "Hello, world!";
var y = 2;
2

console.log(typeof x);
_

Keluaran dari kode ini adalah

console.log(typeof x);
3

Sekarang mari kita lihat contoh yang lebih kompleks. Dalam kode berikut, variabel

var x = "Hello, world!";
var y = 2;
2 diberi nilai variabel msg dikalikan dengan nilai variabel
var x = "Hello, world!";
var y = 2;
4

var x = msg * y;

Karena msg adalah string dan

var x = "Hello, world!";
var y = 2;
4 adalah angka, penerjemah JavaScript pertama-tama akan mengonversi string Hello, world! menjadi angka
var x = msg * y;
0 lalu mengalikan kedua angka tersebut

Jadi nilai

var x = "Hello, world!";
var y = 2;
_2 adalah 144

Sekarang mari kita coba ubah nilai variabel

var x = "Hello, world!";
var y = 2;
4 menjadi sesuatu yang bukan angka

var y = "Hello, world!";

Karena

var x = "Hello, world!";
var y = 2;
4 bukan angka, juru bahasa JavaScript akan melempar
var x = "Hello, world!";
var y = 2;
1

Ada beberapa cara untuk menangani

var x = "Hello, world!";
var y = 2;
1 di JavaScript

Salah satu caranya adalah dengan menggunakan pernyataan

var x = msg * y;
_6

Cara menggunakan coba. menangkap dalam javascript

Pernyataan

var x = msg * y;
_6 memungkinkan Anda untuk menangkap kesalahan yang dilemparkan oleh suatu fungsi

Dalam contoh kode berikut, pernyataan

var x = msg * y;
_6 digunakan untuk menangkap
var x = "Hello, world!";
var y = 2;
1 yang dilemparkan ketika variabel
var x = "Hello, world!";
var y = 2;
4 bukan angka

var y = "Hello, world!";
try {
    var x = msg * y;
    } catch (e) {
    console.log("TypeError: " + e.message);
}

Keluaran dari kode ini adalah ________21______1

Cara lain untuk menangani

var x = "Hello, world!";
var y = 2;
_1 adalah dengan menggunakan fungsi
var y = "Hello, world!";
3

Fungsi

var y = "Hello, world!";
_3 akan menampilkan pesan kepada pengguna dan kemudian menghentikan eksekusi kode JavaScript

Pada contoh kode berikut, fungsi

var y = "Hello, world!";
3 digunakan untuk menampilkan pesan ketika variabel
var x = "Hello, world!";
var y = 2;
4 bukan angka

var y = "Hello, world!";
alert("y is not a number");

Keluaran dari kode ini adalah ________21______7

đź’ˇ

Ingin mensponsori matcha. tahu? . Mari terhubung dan mengobrol tentangnya

TypeErrors dapat dilemparkan kepada Anda saat mencoba mengubah nilai yang tidak dapat diubah atau saat menggunakan nilai dengan cara yang tidak tepat. Itu juga bisa terjadi ketika sebuah argumen diteruskan ke fungsi yang tidak sesuai dengan tipe yang diharapkan oleh fungsi atau operator di dalam fungsi

Apa itu kesalahan ketik dalam javascript?

Temukan Pertandingan Kamp Pelatihan Anda

  • Career Karma mencocokkan Anda dengan kamp pelatihan teknologi terbaik
  • Akses beasiswa eksklusif dan kursus persiapan
Pilih minat Anda
nama depan

nama keluarga

Surel

Nomor telepon


Dengan melanjutkan, Anda menyetujui Ketentuan Layanan dan Kebijakan Privasi kami, dan Anda setuju untuk menerima penawaran dan peluang dari Career Karma melalui telepon, pesan teks, dan email

Mengubah Nilai Yang Tidak Dapat Diubah

Saat Anda menggunakan kata kunci const untuk menetapkan nilai pada sesuatu, ini berarti nilainya konstan, tidak akan berubah. Mencoba mengubah nilai variabel konstan akan menghasilkan TypeError

const a = 5
a = "5"
// Uncaught TypeError: Assignment to constant variable.

Kami dapat memperbaikinya hanya dengan mengubah nama pengidentifikasi yang ingin kami identifikasi dengan string "5"

const a = 5
const b = "5"

Menggunakan Nilai dengan Cara yang Tidak Pantas

Pengembang juga harus memastikan bahwa nilai digunakan sebagaimana mestinya. Pada contoh di bawah ini, "Cat" dan "garfield" dibalik saat mencoba memverifikasi apakah garfield adalah instance dari fungsi Cat()

function Cat() {}
function Dog() {}
 
let garfield = new Cat()
 
Cat instanceof garfield
 
// Uncaught TypeError: Right-hand side of 'instanceof' is not callable

Kita bisa memperbaikinya dengan mengoreksi urutan keduanya

function Cat() {}
function Dog() {}
 
let garfield = new Cat()
 
garfield instanceof Cat

Argumen yang Tidak Sesuai dengan Tipe yang Diharapkan oleh Fungsi

Saat membuat kode operasi, pengembang harus memastikan bahwa mereka menggunakan nilai dengan cara yang memungkinkan mereka mendapatkan hasil yang diinginkan. Nilai null dapat digunakan dengan sengaja untuk menandakan tidak adanya objek, tetapi cara penggunaannya di bawah ini akan menghasilkan TypeError karena digunakan sebagai argumen yang tidak kompatibel dengan tipe yang diharapkan oleh fungsi

 function readingErrorsAreImportant(a){
    if(a.length === 5){
      return "equals five"
    } else if(a.length > 5) {
      return "Greater than five"
    }  else {
      return "Less than five"
    }
   }
   console.log(readingErrorsAreImportant(null))
 
   // Uncaught TypeError: Cannot read property 'length' of null

Kita dapat memperbaikinya dengan mengirimkan tipe nilai yang diharapkan. Seperti tipe nilai numerik

function readingErrorsAreImportant(a){
    if(a.length === 5){
      return "equals five"
    } else if(a.length > 5) {
      return "Greater than five"
    }  else {
      return "Less than five"
    }
   }
   console.log(readingErrorsAreImportant(10))



Kesimpulan

Penting untuk dapat memahami mengapa kode Anda melontarkan kesalahan jenis agar Anda memahami cara men-debug-nya. Jika Anda pernah berada dalam posisi di mana Anda tidak yakin tentang cara mengkategorikan suatu tipe, operator typeof akan mengembalikan Anda salah satu dari sembilan data atau tipe struktural, untuk pemahaman yang lebih baik tentang bagaimana Anda harus melanjutkan dengan debugging

Bagaimana cara mengatasi TypeError dalam JavaScript?

Solusi paling sederhana adalah dengan hanya menggunakan let daripada var . Dengan begitu, setiap kali melalui loop mendapatkan pengikatan baru dari variabel, dan dengan demikian penangan klik semuanya dikaitkan dengan nilai yang benar.

Bagaimana cara menangani kesalahan ketik dalam javascript?

JavaScript menyediakan mekanisme penanganan error untuk menangkap error runtime menggunakan try-catch-finally block , mirip dengan bahasa lain seperti Java atau C#. mencoba. bungkus kode mencurigakan yang dapat menimbulkan kesalahan di blok percobaan. menangkap. tulis kode untuk melakukan sesuatu di blok tangkap ketika terjadi kesalahan.

Bagaimana cara memperbaiki TypeError yang tidak tertangkap bukan fungsi?

Kesalahan Tipe. "x" bukan fungsi dapat diperbaiki menggunakan saran berikut. .
Memperhatikan detail dalam kode dan meminimalkan kesalahan ketik
Mengimpor pustaka skrip yang benar dan relevan yang digunakan dalam kode
Memastikan properti yang dipanggil dari suatu objek sebenarnya adalah sebuah fungsi

Bagaimana cara memperbaiki kesalahan ketik di node js?

Dalam kerangka kerja Node TipeError menunjukkan bahwa argumen yang diteruskan bukan tipe yang sesuai . Metode ini digunakan secara bebas di seluruh modul Node API bawaan, dan juga harus digunakan dalam kode kustom Anda sendiri untuk melakukan pemeriksaan tipe di bagian atas fungsi dan metode Anda.