Lỗi tham chiếu: $ không được xác định javascript

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

Thông điệp

ReferenceError: "x" is not defined

loại lỗi

foo.substring[1]; // ReferenceError: foo is not defined
2

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

Ghi chú. Khi tải một thư viện [chẳng hạn như jQuery], đảm bảo rằng 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 thẻ

foo.substring[1]; // ReferenceError: foo is not defined
3 tải thư viện trước mã của bạn sử dụng nó

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 thức

foo.substring[1]; // ReferenceError: foo is not defined
4 hoạt động

var 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 hiện 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 kỳ đâu 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[] {
  var num1 = 2,
      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

Khi lập trình bằng JavaScript, jQuery hay Angular JS, các coder thường gặp phải một lỗi mang tên Uncaught ReferenceError. $ không được xác định. Điều này thường xảy ra khi $, đó có thể là một biến hoặc một phương thức không được xác định chính xác nhưng đang được sử dụng

Trong bài viết này, chúng tôi sẽ xem xét các lý do khác nhau khiến lỗi này xảy ra và cách giải quyết nó

Nhưng trước tiên, chúng ta hãy tìm hiểu thêm một chút về lỗi này

Lỗi tham chiếu chưa bắt. lỗi $ không được xác định. Nó là gì?

Như đã đề cập trước đó, ký hiệu $ được sử dụng để biểu thị một hàm, đó là hàm jQuery[] phổ biến nhất được gọi là $[document]. sẵn sàng [chức năng[]]. Ví dụ,

jQuery["#name"].hide[]

$["#name"].hide[]

Mã được viết ở đây được sử dụng để ẩn phần tử có id=”name” bằng cách sử dụng phương thức hide[]. Trong dòng thứ hai, bạn có thể thấy rằng biểu tượng $ được sử dụng thay cho phương thức jQuery[]

Nhưng lỗi xảy ra khi bạn đang cố truy cập hoặc sử dụng một phương thức hoặc biến không được khai báo bằng ký hiệu $. Khi JavaScript chạy bên trong trình duyệt, nó sẽ báo lỗi khi một biến đang được sử dụng không được xác định. Bạn phải khai báo một biến bằng từ khóa var

Tương tự, bạn cần định nghĩa một hàm bằng từ khóa function[] {} để tránh lỗi này

Nguyên nhân lỗi

Bây giờ chúng ta hãy xem xét các nguyên nhân khác gây ra lỗi Uncaught References

Click Here

Trong mã này, bạn có thể thấy rằng jQuery được tải sau tập lệnh. Để khắc phục điều này, hãy bao gồm tệp thư viện jQuery bên trong phần đầu của tệp HTML, trước mã JavaScript. làm như sau





Click Here

4] Tệp JqueryLibrary có thuộc tính Async hoặc Defer

async là một thuộc tính Boolean. Điều này chỉ định rằng các tập lệnh sẽ được tải xuống và khi chúng gặp phải. Sau đó, chúng sẽ được thực thi khi quá trình tải xuống hoàn tất. Vì trình phân tích cú pháp HTML không bị chặn trong quá trình này nên các trang được hiển thị nhanh hơn

Không có thuộc tính này, các tệp JavaScript được chạy tuần tự. Vì vậy, tệp JS được tải xuống và thực thi, sau đó mã khác sẽ chạy. Trong thời gian này, trình phân tích cú pháp HTML sẽ bị chặn nên các trang sẽ hiển thị chậm hơn

Trong trường hợp thuộc tính trì hoãn, tập lệnh sẽ được chạy sau khi trang được phân tích cú pháp. Đây cũng là một thuộc tính Boolean được sử dụng cùng với các tập lệnh bên ngoài. Ví dụ,

________số 8

Bởi vì các thuộc tính này làm cho tệp thư viện jQuery tải ở chế độ không đồng bộ. Cách tốt nhất để tránh lỗi Uncaught Error trong trường hợp này là xóa thuộc tính async và defer

5] Xung đột với các thư viện khác như [nguyên mẫu. js, MooTools hoặc YUI]

jQuery sử dụng $ làm lối tắt cho jQuery. Do đó, nếu bạn đang sử dụng một thư viện JavaScript khác sử dụng biến $, bạn có thể gặp xung đột với jQuery

Để khắc phục sự cố này, bạn cần đặt jQuery ở chế độ không xung đột sau khi được tải. Ví dụ,




Trong đoạn mã được viết ở trên, $ sẽ đề cập đến ý nghĩa ban đầu của nó. Bạn sẽ có thể sử dụng bí danh $j và tên hàm jQuery

Có một giải pháp khác, bạn có thể thêm mã này vào đầu trang chỉ mục của mình

Mã chính xác

________số 8

6] Sự cố trình cắm jQuery trong WordPress

Trong khi sử dụng jQuery với WordPress, Uncaught ReferenceError. jQuery không được xác định là một lỗi rất phổ biến. Lỗi này có thể tắt trang web WordPress của bạn. Vì vậy, lỗi này là cơn ác mộng đối với các nhà phát triển web

Có một vài lý do cho lỗi này. Trong số đó, những lý do phổ biến nhất là khi hai hoặc nhiều plugin jQuery xung đột với nhau. Ví dụ: một trình cắm cũ được viết bằng jQuery có thể có ký hiệu $ đại diện cho tên riêng của nó. Nhưng trong một plug-in của bên thứ ba khác, ký hiệu $ có thể không được sử dụng làm phím tắt cho jQuery và có thể có giá trị khác

Vì cả hai giá trị của $ không thể tồn tại đồng thời trong cùng một chương trình nên sẽ xảy ra lỗi Uncaught Error

Dung dịch

  • Để tránh điều này, hãy đảm bảo rằng thư viện jQuery được tải trước JavaScript. Ngoài ra, hãy đảm bảo rằng phiên bản jQuery mới nhất được tải trên hệ thống của bạn
  • Thư viện jQuery đã có sẵn trong WordPress nên bạn không cần phải thêm nó bằng CDN hoặc URL được lưu trữ. Bạn có thể sử dụng hàm wp_enqueue_script[] để đưa jQuery vào tệp của mình

Phần kết luận

Tham chiếu UncaughtError. $ không được xác định có thể tránh được nếu bạn ghi nhớ các điểm được đề cập ở trên. Một lý do khác gây ra lỗi là khi đường dẫn jQuery mà bạn đã cung cấp không chính xác. Có thể có lỗi đánh máy trong đường dẫn hoặc tệp có thể đã bị xóa khỏi vị trí bạn đã chỉ định. Vì vậy, hãy đảm bảo các tệp jQuery của bạn được đặt đúng chỗ. Và nếu bạn đang sử dụng phiên bản trực tuyến, hãy kiểm tra xem internet có hoạt động không để tránh mọi sự cố

ReferenceError trong JavaScript là gì?

Đối tượng ReferenceError đại diện cho một 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 is a serializable object, so it can be cloned with structuredClone[] or copied between Workers using postMessage[] .

Làm cách nào để xử lý lỗi không được xác định trong JavaScript?

Biến ngoại lệ JavaScript này không được xác định xảy ra nếu có một biến không tồn tại được tham chiếu ở đâu đó. Nguyên nhân lỗi. Có một biến không tồn tại được tham chiếu ở đâu đó trong tập lệnh. Biến đó phải được khai báo hoặc đảm bảo biến đó có sẵn trong tập lệnh hoặc phạm vi hiện tại .

Tại sao nó hiển thị tài liệu không được xác định JavaScript?

Lý do phổ biến nhất khiến điều này xảy ra trong mã nói chung là do nếu chúng tôi xác định thẻ trong phần nội dung ngay trước khi nó kết thúc. Điều này sẽ đảm bảo rằng HTML tải trước khi gắn

ReferenceError chưa được phát hiện trong JavaScript là gì?

Lý do phổ biến nhất đằng sau lỗi "Uncaught ReferenceError. $ không được xác định" đang thực thi mã jQuery trước khi tệp thư viện jQuery được tải. Do đó, hãy đảm bảo rằng bạn chỉ đang thực thi mã jQuery sau khi tải xong tệp thư viện jQuery

Chủ Đề