Rumah  >  Artikel  >  hujung hadapan web  >  Apakah jenis ralat program JavaScript?

Apakah jenis ralat program JavaScript?

青灯夜游
青灯夜游asal
2021-09-08 18:22:232511semak imbas

Jenis ralat program JavaScript dibahagikan kepada: 1. Ralat; 3. Ralat Rujukan; 5. Ralat Sintaks;

Apakah jenis ralat program JavaScript?

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.

Jenis ralat dalam JavaScript

ECMA-262 mentakrifkan 7 jenis ralat:

  • Ralat

  • EvalError

  • Ralat Julat

  • ReferenceError

  • SyntaxError

  • TypeError

  • URIError >

Antaranya, Ralat ialah jenis asas (jenis induk daripada enam jenis lain), dan jenis lain mewarisi daripadanya. Jenis Ralat jarang berlaku dan biasanya digunakan oleh pelayar. dilemparkan oleh pelayar. Jenis asas ini digunakan terutamanya oleh pembangun untuk membuang ralat tersuai.

1. SyntaxError:

1.1 Nama pembolehubah tidak mematuhi spesifikasi

var 1 // Uncaught SyntaxError: Unexpected 

number
var 1a // Uncaught SyntaxError: Invalid or unexpected token
1.2 Menetapkan nilai kepada kata kunci

function = 5 // Uncaught SyntaxError: Unexpected token =

2. Ralat Rujukan Tidak Ditangkap:

Ralat. berlaku apabila merujuk pembolehubah yang tidak wujud. Berikan nilai kepada objek yang tidak boleh diberikan, seperti hasil fungsi atau Tugasan fungsi.

2.1 Rujukan kepada pembolehubah tidak wujud

a(); // Uncaught ReferenceError: a is not 

defined
console.log(b); // Uncaught ReferenceError: b is not defined
2.2 Memberikan nilai kepada objek yang tidak boleh diberikan nilai

console.log("abc") = 1 // Uncaught 

ReferenceError: Invalid left-hand side in assignment

3. RangeError:

RangeError ialah ralat yang berlaku apabila nilai berada di luar julat yang sah. Terdapat beberapa situasi utama yang pertama ialah panjang tatasusunan ialah nombor negatif. Yang kedua ialah parameter kaedah objek Nombor berada di luar julat, dan timbunan fungsi melebihi saiz maksimum.

3.1 Panjang tatasusunan ialah nombor negatif

[].length = -5; // Uncaught RangeError: Invalid 

array length
3.2 Parameter kaedah objek Nombor berada di luar julat

var num = new Number(12.34);
console.log(num.toFixed(-1)); // Uncaught RangeError: toFixed() digits argument must be 

between 0 and 20 at Number.toFixed
// 说明: toFixed方法的作用是将数字四舍五入为指定小数位数的数字,参数是小数点后的位数,范围为0

-20.

4 TypeError:

Ralat yang berlaku apabila pembolehubah atau parameter bukan daripada jenis yang dijangkakan. Contohnya, menggunakan rentetan baharu, Boolean dan jenis primitif lain dan objek panggilan tidak wujud kaedah akan membuang ralat ini kerana parameter arahan baru harus menjadi pembina.

4.1 Memanggil kaedah yang tidak wujud

123(); // Uncaught TypeError: 123 is not a 

function
var o = {};
o.run(); // Uncaught TypeError: o.run is not a function
4.2 kata kunci baharu diikuti dengan jenis asas

var p = new 456(); // Uncaught TypeError: 456 

is not a constructor

5. URIError (URL error):

Terutamanya parameter fungsi yang berkaitan adalah tidak betul.

decodeURI("%"); // Uncaught URIError: 

URI malformed at decodeURI
::: tip Peringatan: Ralat yang dilemparkan apabila parameter berkaitan URI tidak betul, terutamanya melibatkan encodeURI, decodeURI(), Enam fungsi: encodeURIComponent(), decodeURIComponent(), escape() dan unescape(). :::

6 EvalError eval() (ralat pelaksanaan fungsi):

Dalam JavaScript di bawah ES5, apabila eval() Apabila a. fungsi tidak dilaksanakan dengan betul, evalError dilemparkan. Contohnya Situasi berikut:

var myEval = eval;
myEval("alert('call eval')");
需要注意的是:ES5以上的JavaScript中已经不再抛出该错误,但依然可以通过new关键字来自定义该类型

的错误提示。
::: amaran Gunakan try-catch dengan baik di mana anda tahu bahawa ralat akan berlaku di suatu tempat dan boleh diselesaikan dengan mengubah suai kod . Ia tidak sesuai untuk menggunakan cuba-tangkap. Atau ia tidak sesuai untuk ralat yang disebabkan oleh ralat keserasian pelayar yang berbeza, kerana ia boleh dinilai oleh Penyemak imbas boleh menentukan sama ada penyemak imbas ini mempunyai atribut dan kaedah ini untuk menyelesaikannya. :::

new Error("出错了!");
new RangeError("出错了,变量超出有效范围!");
new TypeError("出错了,变量类型无效!");
Kod di atas mewakili contoh objek ralat baharu, yang pada asasnya bermaksud membuang ralat secara manual. Seperti yang anda lihat, pembina objek ralat menerima a parameter, mewakili mesej ralat (mesej).

Biasa dengan jenis ralat asas ini dan anda boleh mencari dan menyelesaikan masalah dengan cepat apabila ralat berlaku.

[Pembelajaran yang disyorkan:

tutorial lanjutan javascript]

Atas ialah kandungan terperinci Apakah jenis ralat program JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn