Hướng dẫn what is reference error in javascript? - lỗi tham chiếu trong javascript là gì?

Đối tượng ReferenceError biểu thị lỗi khi một biến không tồn tại (hoặc chưa được khởi tạo) trong phạm vi hiện tại được tham chiếu.ReferenceError object represents an error when a variable that doesn't exist (or hasn't yet been initialized) in the current scope is referenced.

ReferenceError là một đối tượng có thể nối tiếp, vì vậy nó có thể được nhân bản với structuredClone() hoặc được sao chép giữa các công nhân bằng

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}
0.

Người xây dựng

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}
1

Tạo một đối tượng ReferenceError mới.

Thuộc tính thể hiện

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}
3

Thông báo lỗi. Kế thừa từ

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}
4.

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}
5

Tên lỗi. Kế thừa từ

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}
4.

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}
7

Lỗi nguyên nhân. Kế thừa từ

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}
4.

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}
9 không chuẩnNon-standard

Đường dẫn đến tệp đã nêu ra lỗi này. Kế thừa từ

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}
4.

ReferenceError: "x" is not defined (V8-based & Firefox)
ReferenceError: Can't find variable: x (Safari)
1 không chuẩnNon-standard

Số dòng trong tập tin nêu ra lỗi này. Kế thừa từ

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}
4.

ReferenceError: "x" is not defined (V8-based & Firefox)
ReferenceError: Can't find variable: x (Safari)
3 không chuẩnNon-standard

Số cột theo dòng đã nêu ra lỗi này. Kế thừa từ

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}
4.

ReferenceError: "x" is not defined (V8-based & Firefox)
ReferenceError: Can't find variable: x (Safari)
5 không chuẩnNon-standard

Dấu vết xếp chồng. Kế thừa từ

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}
4.

Ví dụ

Bắt một tham chiếu HERROR

try {
  let a = undefinedVariable
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "undefinedVariable is not defined"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "Scratchpad/1"
  console.log(e.lineNumber)                 // 2
  console.log(e.columnNumber)               // 6
  console.log(e.stack)                      // "@Scratchpad/2:2:7\n"
}

Tạo một tham chiếu HERROR

try {
  throw new ReferenceError('Hello', 'someFile.js', 10)
} catch (e) {
  console.log(e instanceof ReferenceError)  // true
  console.log(e.message)                    // "Hello"
  console.log(e.name)                       // "ReferenceError"
  console.log(e.fileName)                   // "someFile.js"
  console.log(e.lineNumber)                 // 10
  console.log(e.columnNumber)               // 0
  console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
}

Thông số kỹ thuật

Sự chỉ rõ
Thông số kỹ thuật ngôn ngữ Ecmascript # Sec-Bản địa-Xây dựng-Types-được sử dụng trong This-Stor-Reform
# sec-native-error-types-used-in-this-standard-referenceerror

Tính tương thích của trình duyệt web

Bảng BCD chỉ tải trong trình duyệt

Xem thêm

Ngoại lệ JavaScript "biến không được xác định" xảy ra khi có biến không tồn tại được tham chiếu ở đâu đó.

Thông điệp

ReferenceError: "x" is not defined (V8-based & Firefox)
ReferenceError: Can't find variable: x (Safari)

Loại lỗi

Có chuyện gì?

Có một biến không tồn tại được tham chiếu ở đâu đó. Biến này cần được khai báo, hoặc bạn cần đảm bảo rằng nó có sẵn trong tập lệnh hoặc phạm vi hiện tại của bạn.

Lưu ý: Khi tải thư viện (chẳng hạn như jQuery), hãy đảm bảo nó được tải trước khi bạn truy cập các biến thư viện, chẳng hạn như "$". Đặt phần tử

ReferenceError: "x" is not defined (V8-based & Firefox)
ReferenceError: Can't find variable: x (Safari)
7 tải thư viện trước mã của bạn sử dụng nó. When loading a library (such as jQuery), make sure it is loaded before you access library variables, such as "$". Put the
ReferenceError: "x" is not defined (V8-based & Firefox)
ReferenceError: Can't find variable: x (Safari)
7 element that loads the library before your code that uses it.

Ví dụ

Biến không được khai báo

foo.substring(1); // ReferenceError: foo is not defined

Biến "FOO" không được xác định ở bất cứ đâu. Nó cần phải là một số chuỗi, để phương pháp

ReferenceError: "x" is not defined (V8-based & Firefox)
ReferenceError: Can't find variable: x (Safari)
8 sẽ hoạt động.

const foo = 'bar';
foo.substring(1); // "ar"

Phạm vi sai

Một biến cần phải có sẵn trong bối cảnh thực thi hiện tại. Các biến được xác định bên trong một hàm không thể được truy cập từ bất cứ nơi nào bên ngoài hàm, bởi vì biến chỉ được xác định trong phạm vi của hàm

function numbers() {
  const num1 = 2;
  const num2 = 3;
  return num1 + num2;
}

console.log(num1); // ReferenceError num1 is not defined.

Tuy nhiên, một hàm có thể truy cập tất cả các biến và hàm được xác định bên trong phạm vi mà nó được xác định. Nói cách khác, một hàm được xác định trong phạm vi toàn cầu có thể truy cập tất cả các biến được xác định trong phạm vi toàn cầu.

const num1 = 2;
const num2 = 3;

function numbers() {
  return num1 + num2;
}

console.log(numbers()); // 5

Xem thêm

Lỗi tham chiếu là gì?

#REF!Lỗi hiển thị khi công thức đề cập đến một ô không hợp lệ.Điều này xảy ra thường xuyên nhất khi các tế bào được tham chiếu bởi các công thức bị xóa, hoặc được dán qua.shows when a formula refers to a cell that's not valid. This happens most often when cells that were referenced by formulas get deleted, or pasted over.

Một tài liệu tham khảo trong JavaScript là gì?

Trong tham chiếu vượt qua, một hàm được gọi bằng cách truyền trực tiếp tham chiếu/địa chỉ của biến làm đối số.Thay đổi đối số bên trong hàm ảnh hưởng đến biến được truyền từ bên ngoài hàm.Trong các đối tượng và mảng JavaScript được truyền qua tham chiếu.a function is called by directly passing the reference/address of the variable as the argument. Changing the argument inside the function affects the variable passed from outside the function. In Javascript objects and arrays are passed by reference.

Lỗi phổ biến nhất trong JavaScript là gì?

TypeError là một trong những lỗi phổ biến nhất trong các ứng dụng JavaScript.Lỗi này được tạo ra khi một số giá trị không hóa ra là một loại dự kiến cụ thể.Một số trường hợp phổ biến khi nó xảy ra là: gọi các đối tượng không phải là phương pháp. is one of the most common errors in JavaScript apps. This error is created when some value doesn't turn out to be of a particular expected type. Some of the common cases when it occurs are: Invoking objects that are not methods.

Lỗi đối tượng trong JavaScript là gì?

Các đối tượng lỗi được ném khi xảy ra lỗi thời gian chạy.Đối tượng lỗi cũng có thể được sử dụng làm đối tượng cơ sở cho các ngoại lệ do người dùng xác định.Xem bên dưới để biết các loại lỗi tích hợp tiêu chuẩn.thrown when runtime errors occur. The Error object can also be used as a base object for user-defined exceptions. See below for standard built-in error types.