From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- .../vi/web/javascript/reference/errors/index.html | 31 ++++++++ .../missing_semicolon_before_statement/index.html | 67 +++++++++++++++++ .../errors/more_arguments_needed/index.html | 45 ++++++++++++ .../reference/errors/not_a_function/index.html | 84 ++++++++++++++++++++++ .../reference/errors/qua_nhieu_de_quy/index.html | 54 ++++++++++++++ 5 files changed, 281 insertions(+) create mode 100644 files/vi/web/javascript/reference/errors/index.html create mode 100644 files/vi/web/javascript/reference/errors/missing_semicolon_before_statement/index.html create mode 100644 files/vi/web/javascript/reference/errors/more_arguments_needed/index.html create mode 100644 files/vi/web/javascript/reference/errors/not_a_function/index.html create mode 100644 files/vi/web/javascript/reference/errors/qua_nhieu_de_quy/index.html (limited to 'files/vi/web/javascript/reference/errors') diff --git a/files/vi/web/javascript/reference/errors/index.html b/files/vi/web/javascript/reference/errors/index.html new file mode 100644 index 0000000000..c295fccea6 --- /dev/null +++ b/files/vi/web/javascript/reference/errors/index.html @@ -0,0 +1,31 @@ +--- +title: JavaScript error reference +slug: Web/JavaScript/Reference/Errors +tags: + - Debugging + - Error + - Errors + - Exception + - JavaScript + - NeedsTranslation + - TopicStub + - exceptions +translation_of: Web/JavaScript/Reference/Errors +--- +

{{jsSidebar("Errors")}}

+ +

Below, you'll find a list of errors which are thrown by JavaScript. These errors can be a helpful debugging aid, but the reported problem isn't always immediately clear. The pages below will provide additional details about these errors. Each error is an object based upon the {{jsxref("Error")}} object, and has a name and a message.

+ +

Errors displayed in the Web console may include a link to the corresponding page below to help you quickly comprehend the problem in your code.

+ +

List of errors

+ +

In this list, each page is listed by name (the type of error) and message (a more detailed human-readable error message). Together, these two properties provide a starting point toward understanding and resolving the error. For more information, follow the links below!

+ +

{{ListSubPages("/en-US/docs/Web/JavaScript/Reference/Errors")}}

+ +

See also

+ + diff --git a/files/vi/web/javascript/reference/errors/missing_semicolon_before_statement/index.html b/files/vi/web/javascript/reference/errors/missing_semicolon_before_statement/index.html new file mode 100644 index 0000000000..2e5e606618 --- /dev/null +++ b/files/vi/web/javascript/reference/errors/missing_semicolon_before_statement/index.html @@ -0,0 +1,67 @@ +--- +title: 'Lỗi cú pháp: Thiếu dấu ; trước câu lệnh' +slug: Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement +tags: + - JavaScript + - Lỗi + - Lỗi cú pháp +translation_of: Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement +--- +
{{jsSidebar("Errors")}}
+ +

Thông điệp

+ +
SyntaxError: missing ; before statement
+
+ +

Kiểu lỗi

+ +

{{jsxref("Lỗi cú pháp")}}.

+ +

Sai ở đâu?

+ +

Bạn đang thiếu dấu (;) ở đâu đó. Câu lệnh JavaScript phải được kết thúc bằng một dấu "chấm phẩy". Một vài trong số đó được thêm tự động bởi tính năng automatic semicolon insertion (ASI), nhưng trong tình huống này bạn cần thêm thủ công để JavaScript có thể hiểu câu lệnh của bạn chính xác.

+ +

Tuy nhiên, thi thoảng lỗi này lại là kết quả của một vài lỗi khác, ví dụ như không kết thúc chuỗi ký tự một cách chính xác, hoặc sử dụng từ khoá var không đúng. Cũng có thể bạn đã thêm quá nhiều dấu ngoặc tròn ở đâu đó. Nếu bạn nhìn thấy lỗi này, trước hết hãy kiểm tra cẩn thận các lỗi cú pháp.

+ +

Ví dụ

+ +

Không kết thúc chuỗi

+ +

Lỗi này có thể xảy ra khi bạn quên kết thúc chuỗi, còn JavaScrip thì đang mong đợi điều ấy:

+ +
var foo = 'Tom's bar';
+// SyntaxError: missing ; before statement
+ +

Bạn có thể sử dụng dấu nháy kép hoặc sử dụng dấu  \ cho những ký tự đặc biệt thế này:

+ +
var foo = "Tom's bar";
+var foo = 'Tom\'s bar';
+
+ +

Khai báo thuộc tính với từ khoá var

+ +

Bạn KHÔNG THỂ khai báo thuộc tính của một đối tượng hoặc một mảng bằng từ khoá var:

+ +
var obj = {};
+var obj.foo = 'hi'; // SyntaxError missing ; before statement
+
+var array = [];
+var array[0] = 'there'; // SyntaxError missing ; before statement
+
+ +

Thay vào đó, hãy cứ bỏ qua từ khoá var như thế này:

+ +
var obj = {};
+obj.foo = 'hi';
+
+var array = [];
+array[0] = 'there';
+
+ +

Xem thêm:

+ + diff --git a/files/vi/web/javascript/reference/errors/more_arguments_needed/index.html b/files/vi/web/javascript/reference/errors/more_arguments_needed/index.html new file mode 100644 index 0000000000..4cf87a8b6d --- /dev/null +++ b/files/vi/web/javascript/reference/errors/more_arguments_needed/index.html @@ -0,0 +1,45 @@ +--- +title: 'TypeError: More arguments needed' +slug: Web/JavaScript/Reference/Errors/More_arguments_needed +translation_of: Web/JavaScript/Reference/Errors/More_arguments_needed +--- +
{{jsSidebar("Errors")}}
+ +

Message

+ +
TypeError: tham số không phải là một đối tượng và không phải là null (Edge)
+TypeError: Object.create requires cần ít nhất 1 tham số, nhưng chỉ có 0 được thông qua
+TypeError: Object.setPrototypeOf requires cần ít nhất 2 tham số nhưng chỉ có 0 được thông qua
+TypeError: Object.defineProperties requires cần ít nhất một tham số, nhưng chỉ có 0 được thông qua
+
+ +

Loại lỗi

+ +

{{jsxref("Lỗi")}}.

+ +

Chuyện gì đã xảy ra?

+ +

Đã có một lỗi với hàm được gọi. Cần cung cấp nhiều tham số hơn

+ +

VÍ dụ

+ +

Phương thức {{jsxref("Object.create()")}} cần ít nhất 1 tham số và phương thức {{jsxref("Object.setPrototypeOf()")}} cần ít nhất 2 tham số:

+ +
var obj = Object.create();
+// TypeError: Object.create requires cần ít nhất là 1 tham số, nhưng chỉ có 0 được thông qua
+
+var obj = Object.setPrototypeOf({});
+// TypeError: Object.setPrototypeOf requires cần ít nhât 2 tham số, nhưng chỉ có 1 được thông qua
+
+ +

Bạn có thể khắc phục bằng cách đặt {{jsxref("null")}} về nguyên mẫu, ví dụ:

+ +
var obj = Object.create(null);
+
+var obj = Object.setPrototypeOf({}, null);
+ +

Xem thêm

+ + diff --git a/files/vi/web/javascript/reference/errors/not_a_function/index.html b/files/vi/web/javascript/reference/errors/not_a_function/index.html new file mode 100644 index 0000000000..a267a8bc74 --- /dev/null +++ b/files/vi/web/javascript/reference/errors/not_a_function/index.html @@ -0,0 +1,84 @@ +--- +title: 'TypeError: "x" is not a function' +slug: Web/JavaScript/Reference/Errors/Not_a_function +tags: + - JavaScript + - Lỗi + - Lỗi đánh máy +translation_of: Web/JavaScript/Reference/Errors/Not_a_function +--- +
{{jsSidebar("Errors")}}
+ +

Message

+ +
TypeError: "x" is not a function
+
+ +

Thể loại sai:

+ +

{{jsxref("TypeError")}}.

+ +

Chuyện gì đã xảy ra?

+ +

Dự định gọi 1 giá trị như 1 chức năng, nhưng giá trị đó không thật sự là 1 chức năng. Một số đoạn mã chờ bạn cung cấp 1 chức năng, nhưng điều đó không xảy ra.

+ +

Có lẽ là do bạn đánh sai tên chức năng chăng? Có lẽ object mà bạn định gọi method cho không có chức năng này? Ví dụ như những object của Javascript không có chức năng map, nhưng object của Javascript xâu (Array) thì có.

+ +

Có rất nhiều chức năng có sẵn khi cần dùng lại 1 chức năng. Bạn sẽ phải cung cấp 1 chức năng để những method này hoạt động 1 cách chính xác.

+ + + +

Ví dụ

+ +

Lỗi đánh máy trong tên chức năng

+ +

Trong trường hợp này, xảy ra rất thường xuyên, có 1 lỗi đánh máy trong tên method:

+ +
var x = document.getElementByID('foo');
+// TypeError: document.getElementByID is not a function
+
+ +

Tên đúng là getElementById:

+ +
var x = document.getElementById('foo');
+
+ +

Chức năng bị gọi sai trên object

+ +

Đối với 1 số method nhất định, bạn phải cung cấp 1 chức năng (để gọi trở lại) và nó sẽ hoạt động trên những object nhất định đó thôi. Ví dụ khi {{jsxref("Array.prototype.map()")}} được sử dụng, thì sẽ chỉ chạy với object {{jsxref("Array")}} này mà thôi.

+ +
var obj = {a: 13, b: 37, c: 42};
+
+obj.map(function(num) {
+  return num * 2;
+});
+
+// TypeError: obj.map is not a function
+ +

Thay vào đó, sử dụng 1 xâu:

+ +
var numbers = [1, 4, 9];
+
+numbers.map(function(num) {
+  return num * 2;
+});
+
+// Array [2, 8, 18]
+
+ +

Liên kết:

+ + diff --git a/files/vi/web/javascript/reference/errors/qua_nhieu_de_quy/index.html b/files/vi/web/javascript/reference/errors/qua_nhieu_de_quy/index.html new file mode 100644 index 0000000000..a4851c4f56 --- /dev/null +++ b/files/vi/web/javascript/reference/errors/qua_nhieu_de_quy/index.html @@ -0,0 +1,54 @@ +--- +title: 'InternalError: Quá nhiều đệ quy' +slug: Web/JavaScript/Reference/Errors/qua_nhieu_de_quy +tags: + - JavaScript + - Lỗi + - Lỗi bên trong +translation_of: Web/JavaScript/Reference/Errors/Too_much_recursion +--- +
{{jsSidebar("Errors")}}
+ +

Thông điệp

+ +
InternalError: too much recursion
+
+ +

Loại lỗi

+ +

{{jsxref("InternalError")}}.

+ +

Lỗi phát sinh ra khi nào?

+ +

Một hàm gọi chính nó được gọi là hàm đệ quy . Trong một số trường hợp, đệ quy tương tự như một vòng lặp. Cả hai đều thực hiện cùng một mã nhiều lần, Và cả hai đều yêu cầu một điều kiện ( Để tránh một vòng lặp vô hạn, hoặc đúng hơn, đệ quy vô hạn trong trường hợp này ). Khi có quá nhiều hoặc vô hạn đệ quy, JavaScript sẽ ném lỗi này.

+ +

Ví dụ

+ +

Chức năng đệ quy này chạy 10 lần, theo điều kiện x >= 10 .

+ +
function loop(x) {
+  if (x >= 10) // "x >= 10" là điều kiện dừng
+    return;
+  // do stuff
+  loop(x + 1); // gọi lại chính nó (đệ quy)
+}
+loop(0);
+ +

Đặt điều kiện này lên một giá trị rất cao, sẽ không hoạt động:

+ +
function loop(x) {
+  if (x >= 1000000000000)
+    return;
+  // do stuff
+  loop(x + 1);
+}
+loop(0);
+
+// InternalError: too much recursion
+ +

Xem thêm

+ + -- cgit v1.2.3-54-g00ecf