Hướng dẫn javascript object undefined but exists - đối tượng javascript không xác định nhưng tồn tại
Đầu ra của 6 là sai lệch; Trạng thái của đối tượng được hiển thị chỉ được giải quyết khi bạn mở rộng cây đối tượng được hiển thị trong bảng điều khiển, bằng cách nhấp vào 7. Nó không phải là trạng thái của đối tượng khi bạn ________ 38 sẽ là đối tượng.not the state of the object when you 8'd the object. Show Thay vào đó, hãy thử 9, hoặc thậm chí 0 và bạn sẽ thấy các phím, hoặc trạng thái của đối tượng tại thời điểm bạn gọi 8.Bạn sẽ (thường) tìm các khóa đang được thêm vào sau cuộc gọi 8 của bạn.
Đã trả lời ngày 9 tháng 7 năm 2013 lúc 11:25Jul 9, 2013 at 11:25
6 Tôi vừa gặp vấn đề này với một tài liệu được tải từ MongoDB bằng Mongoose. Khi chạy 3 trên toàn bộ đối tượng, tất cả các trường tài liệu (như được lưu trữ trong DB) sẽ hiển thị. Tuy nhiên, một số người truy cập tài sản riêng lẻ sẽ trả lại 4, khi những người khác (bao gồm cả 5) hoạt động tốt.Hóa ra Trình truy cập tài sản chỉ hoạt động cho các trường đó được chỉ định trong định nghĩa 6 của tôi, trong khi 3 và 8 trả về tất cả các trường được lưu trữ trong DB.Giải pháp (nếu bạn đang sử dụng Mongoose): Đảm bảo tất cả các trường DB của bạn được xác định trong 6.Đã trả lời ngày 9 tháng 4 năm 2016 lúc 20:35Apr 9, 2016 at 20:35
raminraminramin 1.1327 huy hiệu bạc5 huy hiệu đồng7 silver badges5 bronze badges 8 Kiểm tra xem bên trong đối tượng có một mảng các đối tượng không. Tôi đã có một vấn đề tương tự với một JSON:
Tôi đã cố gắng truy cập 'tên' tên 'từ' danh mục 'và tôi đã gặp lỗi không xác định, bởi vì tôi đã sử dụng:
Sau đó, tôi nhận ra rằng nó có dấu ngoặc vuông, điều đó có nghĩa là nó có một loạt các đối tượng bên trong khóa danh mục, bởi vì nó có thể có nhiều hơn một đối tượng danh mục. Vì vậy, để có được khóa 'tên', tôi đã sử dụng cái này:
Và đó là thủ thuật. Có thể đã quá muộn cho câu trả lời này, nhưng tôi hy vọng ai đó có cùng một vấn đề sẽ tìm thấy điều này như tôi đã làm trước khi tìm ra giải pháp :) Đã trả lời ngày 11 tháng 8 năm 2015 lúc 21:27Aug 11, 2015 at 21:27
Asaf Lopezasaf LopezAsaf Lopez 5295 Huy hiệu bạc8 Huy hiệu Đồng5 silver badges8 bronze badges 0 Tôi gặp vấn đề tương tự. Giải pháp cho tôi là sử dụng đầu ra chuỗi làm đầu vào để phân tích cú pháp JSON. Điều này làm việc cho tôi. Hy vọng nó hữu ích cho bạn
Tunaki 128K45 Huy hiệu vàng324 Huy hiệu bạc407 Huy hiệu đồng45 gold badges324 silver badges407 bronze badges Đã trả lời ngày 27 tháng 1 năm 2016 lúc 13:03Jan 27, 2016 at 13:03
TẢI XUỐNGTope 8882 Huy hiệu vàng11 Huy hiệu bạc15 Huy hiệu đồng2 gold badges11 silver badges15 bronze badges 3 Tài sản bạn đang cố gắng truy cập có thể chưa tồn tại. Console.log hoạt động vì nó thực thi sau một độ trễ nhỏ, nhưng đó không phải là trường hợp cho phần còn lại của mã của bạn. Thử cái này:
Đã trả lời ngày 27 tháng 3 năm 2016 lúc 18:18Mar 27, 2016 at 18:18
Lai Xuelai XueLai Xue 1.4571 Huy hiệu vàng15 Huy hiệu bạc17 Huy hiệu đồng1 gold badge15 silver badges17 bronze badges 3 Trong trường hợp của tôi, tôi đã chuyển một đối tượng cho một lời hứa, trong lời hứa, tôi đã thêm nhiều khóa/giá trị vào đối tượng và khi nó được thực hiện, lời hứa đã trả lại đối tượng. Tuy nhiên, một chút nhìn về phía tôi, lời hứa đã trả lại đối tượng trước khi nó hoàn thành hoàn toàn ... do đó, phần còn lại của mã của tôi đã cố gắng xử lý đối tượng được cập nhật và dữ liệu chưa có ở đó. Nhưng như trên, trong bảng điều khiển, tôi đã thấy đối tượng được cập nhật đầy đủ nhưng không thể truy cập các phím - chúng đã trở lại không xác định. Cho đến khi tôi thấy điều này:
[I] là một biểu tượng nhỏ, khi tôi lơ lửng trên nó, nó nói 0. Đó là khi tôi nhận ra rằng đối tượng của tôi đã được đánh giá trước khi lời hứa đã cập nhật đầy đủ nó.Đã trả lời ngày 21 tháng 9 năm 2016 lúc 2:18Sep 21, 2016 at 2:18
Rolingerrolingerrolinger 2.53128 Huy hiệu bạc45 Huy hiệu đồng28 silver badges45 bronze badges 0 Tôi đã đấu tranh với vấn đề này ngày hôm nay và nghĩ rằng tôi sẽ để lại câu trả lời với giải pháp của mình. Tôi đã tìm nạp một đối tượng dữ liệu thông qua ajax, một cái gì đó như thế này: 1Giả sử đối tượng này nằm trong một biến gọi là dữ liệu. Bất cứ khi nào tôi tham chiếu 2 tôi nhận được 4.
Không có gì có ích ... sau đó ở phía máy chủ, tôi đã viết dữ liệu vào nhật ký PHP và nó đã tiết lộ điều này: 7"I" trong khóa chỉ mục thực sự là U0456 (Cyrillic I). Điều này không thể nhìn thấy trong trình chỉnh sửa PHP của tôi hoặc nhật ký bảng điều khiển trình duyệt. Chỉ có nhật ký PHP mới tiết lộ điều này ... đó là một điều khó khăn ...
Đã trả lời ngày 8 tháng 10 năm 2015 lúc 13:16Oct 8, 2015 at 13:16
JettejetteJette 2.30927 Huy hiệu bạc34 Huy hiệu đồng27 silver badges34 bronze badges 2 Dữ liệu của tôi chỉ là chuỗi dữ liệu JSON. (Biến này được lưu trữ dưới dạng chuỗi JSON trong phiên).
-> Trả về chỉ biểu diễn của chuỗi này và không có cách nào để tạo sự khác biệt cho dù là chuỗi hay đối tượng. Vì vậy, để làm cho nó hoạt động, tôi chỉ cần chuyển đổi nó trở lại đối tượng thực:
Đã trả lời ngày 1 tháng 11 năm 2016 lúc 15:27Nov 1, 2016 at 15:27
Makkasimakkasimakkasi 4.9293 Huy hiệu vàng44 Huy hiệu bạc59 Huy hiệu Đồng3 gold badges44 silver badges59 bronze badges 1 Tôi vừa gặp phải vấn đề này với các đối tượng được tạo bởi CSV-Parser từ tệp CSV được tạo bởi MS Excel. Tôi đã có thể truy cập tất cả các thuộc tính ngoại trừ thuộc tính đầu tiên - nhưng nó sẽ hiển thị OK nếu tôi viết toàn bộ đối tượng bằng cách sử dụng Console.log. Hóa ra định dạng CSV UTF-8 chèn 3 byte (EF BB BF) khi bắt đầu tương ứng với một ký tự vô hình-được đưa vào như một phần của tiêu đề thuộc tính đầu tiên của CSV-pryer. Giải pháp là tạo lại CSV bằng tùy chọn không UTF và điều này đã loại bỏ ký tự vô hình. Đã trả lời ngày 25 tháng 10 năm 2018 lúc 16:51Oct 25, 2018 at 16:51
Mike Rizzomike RizzoMike Rizzo 1211 Huy hiệu bạc3 Huy hiệu đồng1 silver badge3 bronze badges 5 Trong năm 2018, Mozilla cảnh báo chúng tôi trong các tài liệu Mozilla ở đây! Tôi trích dẫn "đối tượng ghi nhật ký":"Logging Objects":
Đã trả lời ngày 22 tháng 2 năm 2018 lúc 14:46Feb 22, 2018 at 14:46
Mateut Alinmateut AlinMateut Alin 1.0833 huy hiệu vàng16 Huy hiệu bạc31 Huy hiệu đồng3 gold badges16 silver badges31 bronze badges 0 Nếu đây là một vấn đề xảy ra khi làm việc với Mongoose, thì điều này có thể xảy ra:Mongoose, the following may happen:
Trả về mọi thứ, bao gồm cả khóa mong muốn.
trả lại không xác định. Nếu điều đó đang xảy ra, điều đó có nghĩa là chìa khóa bị thiếu trong lược đồ Mongoose. Thêm nó vào sẽ giải quyết vấn đề. Đã trả lời ngày 13 tháng 7 năm 2020 lúc 11:12Jul 13, 2020 at 11:12
Julian E.Julian E.Julian E. 4.6496 Huy hiệu vàng35 Huy hiệu bạc48 Huy hiệu đồng6 gold badges35 silver badges48 bronze badges 1 Đối với tôi, hóa ra đó là một vấn đề liên quan đến Mongoose. Tôi đã lặp lại các vật thể mà tôi nhận được từ một truy vấn Mongo. Tôi chỉ cần loại bỏ: 0Và thay thế nó bằng: 1Đã trả lời ngày 24 tháng 2 năm 2019 lúc 17:19Feb 24, 2019 at 17:19
RemideJremidejremidej 1.1501 huy hiệu vàng11 Huy hiệu bạc21 Huy hiệu đồng1 gold badge11 silver badges21 bronze badges 2 Điều này có thể giúp ai đó khi tôi gặp vấn đề tương tự trong đó json.parse () đang trả về một đối tượng mà tôi có thể in trên console.log () nhưng tôi không thể xác nhận các trường cụ thể và không có giải pháp nào trên tôi. Giống như sử dụng kết hợp json.parse () với json.Stringify (). 2Cuối cùng tôi đã giải quyết vấn đề bằng cách sử dụng một trình phân tích cú pháp khác được cung cấp bởi extjs ext.decode (); 3Đã trả lời ngày 16 tháng 2 năm 2018 lúc 17:26Feb 16, 2018 at 17:26
user_CCuser_CCuser_CC 4.6463 Huy hiệu vàng19 Huy hiệu bạc15 Huy hiệu Đồng3 gold badges19 silver badges15 bronze badges Tôi đã có cùng một vấn đề và không có giải pháp nào ở trên cho tôi và nó cảm thấy như đoán công việc sau đó. Tuy nhiên, việc gói mã của tôi tạo ra đối tượng trong hàm 0 đã thực hiện thủ thuật cho tôi. 4Đã trả lời ngày 15 tháng 3 năm 2017 lúc 7:21Mar 15, 2017 at 7:21
Tushar Shuklatushar ShuklaTushar Shukla 4.7772 Huy hiệu vàng26 Huy hiệu bạc38 Huy hiệu Đồng2 gold badges26 silver badges38 bronze badges Tôi vừa gặp vấn đề tương tự với một tài liệu được tải từ MongoDB bằng Mongoose. Hóa ra tôi đang sử dụng thuộc tính 1 để trả về chỉ một đối tượng, vì vậy tôi đã thay đổi 1 thành 3 và mọi thứ đều hoạt động cho tôi.Giải pháp (nếu bạn đang sử dụng Mongoose): Đảm bảo chỉ trả về một đối tượng, vì vậy bạn có thể phân tích 4 của nó hoặc nó sẽ được coi là một mảng để bạn cần phải kích hoạt như vậy 5.
Đã trả lời ngày 19 tháng 4 năm 2018 lúc 13:33Apr 19, 2018 at 13:33
2 Trong trường hợp của tôi, điều đó chỉ xảy ra là mặc dù tôi nhận được dữ liệu ở định dạng của một mô hình như đối tượng 6 cho đến khi đối tượng nhận được là loại chuỗi. Đó là y trong console.log (dữ liệu) Tôi nhận được nội dung. Giải pháp chỉ là để phân tích JSON (trong trường hợp của tôi) 5Nghĩ có thể hữu ích. Đã trả lời ngày 29 tháng 7 năm 2018 lúc 5:43Jul 29, 2018 at 5:43
Tôi đã có vấn đề tương tự, hy vọng giải pháp sau đây sẽ giúp ai đó. Bạn có thể sử dụng chức năng 0 như một số người ở đây đề xuất, nhưng bạn không bao giờ biết trình duyệt của bạn cần chính xác như thế nào để xác định đối tượng của mình.You can use 0 function as some guys here suggesting, but you never know how exactly long does your browser need to get your object defined.Thay vào đó, tôi khuyên bạn nên sử dụng chức năng 8. Nó sẽ đợi cho đến khi đối tượng của bạn 9 được xác định và sau đó bắn phần mã tiếp theo của bạn yêu cầu các thuộc tính đối tượng cụ thể của bạn. 8 function instead. It will wait until your object 9
gets defined and then fire your next code part that requires your specific object properties. 6Đã trả lời ngày 26 tháng 11 năm 2018 lúc 13:20Nov 26, 2018 at 13:20
Oleksa O.oleksa O.Oleksa O. 6715 Huy hiệu bạc14 Huy hiệu Đồng5 silver badges14 bronze badges Nếu bạn đang sử dụng 0 và/hoặc 1, đó có thể là thế này! 2Đặt loại phản hồi cho bất kỳ sự cố nào đã được khắc phục cho tôi, tôi không thể truy cập các thuộc tính trên phản hồi cho đến khi tôi đặt res: bất kỳany fixed this issue for me, I couldn't access properties on the response until i set res: any Xem thuộc tính câu hỏi này '_body' không tồn tại trên 'câu trả lời'
Philipp 2.7902 Huy hiệu vàng26 Huy hiệu bạc27 Huy hiệu đồng2 gold badges26 silver badges27 bronze badges Đã trả lời ngày 2 tháng 11 năm 2017 lúc 19:35Nov 2, 2017 at 19:35
Tôi đã có một vấn đề tương tự hoặc có thể chỉ liên quan. Đối với trường hợp của tôi, tôi đã truy cập các thuộc tính của một đối tượng nhưng một người không được xác định. Tôi thấy vấn đề là không gian trắng trong mã phía máy chủ trong khi tạo khóa, val của đối tượng. Cách tiếp cận của tôi như sau ... Sau khi xóa không gian trắng khỏi mã phía máy chủ tạo đối tượng, giờ đây tôi có thể truy cập thuộc tính như bên dưới ... Đây có thể không phải là vấn đề với trường hợp của câu hỏi chủ đề nhưng là trường hợp của tôi và có thể là như vậy đối với một số người khác. Hy vọng nó giúp. Đã trả lời ngày 20 tháng 4 năm 2017 lúc 8:11Apr 20, 2017 at 8:11
rey_coderrey_coderrey_coder 4128 Huy hiệu bạc12 Huy hiệu đồng8 silver badges12 bronze badges 0 Tôi cũng chỉ gặp phải vấn đề này, và câu chuyện dài API của tôi đã trả lại một loại chuỗi chứ không phải JSON. Vì vậy, nó trông giống hệt nhau khi bạn in nó vào nhật ký tuy nhiên bất cứ khi nào tôi cố gắng truy cập các thuộc tính, nó đã cho tôi một lỗi không xác định. Mã API: 7Trước đây tôi vừa trở lại: 8Đã trả lời ngày 19 tháng 12 năm 2019 lúc 4:23Dec 19, 2019 at 4:23
ZapnologicazapnologicaZapnologica 21.5K43 Huy hiệu vàng152 Huy hiệu bạc245 Huy hiệu Đồng43 gold badges152 silver badges245 bronze badges Điều đầu tiên kiểm tra loại như dưới đây: 9Nếu lệnh trên in đối tượng thì rất dễ dàng, bạn chỉ cần sử dụng ký hiệu khung. Ký hiệu khung có thể khá hữu ích nếu bạn muốn tìm kiếm các giá trị thuộc tính của các giá trị. Thực hiện lệnh bên dưới: 0Nếu nó là một chuỗi bạn cần phân tích cú pháp trong đối tượng trước. Để làm điều đó, bạn cần thực thi lệnh bên dưới: 1Và sau đó sử dụng ký hiệu khung để truy cập thuộc tính như bên dưới: 2Đã trả lời ngày 31 tháng 7 năm 2020 lúc 14:49Jul 31, 2020 at 14:49
Tôi đã có một vấn đề như thế này, và tìm thấy giải pháp là để làm với Undercore.js. Ghi nhật ký ban đầu của tôi không có ý nghĩa: 3Tôi tìm thấy giải pháp bằng cách nhìn vào các khóa của đối tượng: 4Điều này dẫn tôi nhận ra rằng 3 thực sự là một bản bao gồm các dấu gạch dưới xung quanh một vật thể, và việc gỡ lỗi ban đầu đang nói dối tôi.Đã trả lời ngày 6 tháng 5 năm 2016 lúc 11:08May 6, 2016 at 11:08
Marcus Downingmarcus DowningMarcus Downing 9.91410 Huy hiệu vàng62 Huy hiệu bạc84 Huy hiệu đồng10 gold badges62 silver badges84 bronze badges Tôi đã gặp vấn đề tương tự (khi phát triển cho SugarCrm), nơi tôi bắt đầu với: 5Vấn đề là trong 4, cuộc gọi không đồng bộ của nó vì vậy tôi phải viết lại mã của mình thành: 6Đã trả lời ngày 1 tháng 6 năm 2017 lúc 9:43Jun 1, 2017 at 9:43
MariyomariyoMariyo 4447 Huy hiệu bạc15 Huy hiệu Đồng7 silver badges15 bronze badges Chỉ trong trường hợp điều này hữu ích cho ai đó, tôi có một vấn đề tương tự và đó là vì ai đó đã tạo ra một sự ghi đè cho .tojson trong đối tượng tôi đang làm việc. Vì vậy, đối tượng giống như: 7Nhưng .tojson () là: 8Vì vậy, khi tôi gọi json.Stringify (myObject), nó đã trả lại "{" bar ":" Xin chào "," Baz ":" World "}". Tuy nhiên, Object.Keys (MyObject) đã tiết lộ "foo". Đã trả lời ngày 11 tháng 8 năm 2017 lúc 20:35Aug 11, 2017 at 20:35
2 Tôi đã phải đối mặt với vấn đề tương tự ngày hôm nay. Trong trường hợp của tôi, các phím đã được lồng, i.e key1.key2. Tôi chia các phím bằng cách sử dụng split () và sau đó sử dụng ký hiệu khung vuông, hoạt động cho tôi. 9Tôi chia các phím và sử dụng nó như thế này, Data [Key1] [Key2] đã làm công việc cho tôi.
Đã trả lời ngày 11 tháng 10 năm 2017 lúc 21:02Oct 11, 2017 at 21:02
Tôi đã có cùng một vấn đề ngày hôm nay. Vấn đề là do Uglify-JS gây ra. Sau khi tôi thực hiện cùng một vấn đề mã không đào đã được giải quyết. Loại bỏ 0Từ UGLIFY-JS là đủ để có mã UGLECED hoạt động. Có lẽ, thực tiễn tốt nhất là sử dụng một số tiền tố cho các thuộc tính phải được xử lý với quy tắc regex cho uglify-js. Đây là nguồn: 1Và đây là cách nó bị xấu hổ: 2Đã trả lời ngày 25 tháng 1 năm 2018 lúc 12:42Jan 25, 2018 at 12:42
Không ai trong số các chuỗi JSON/Parse làm việc cho tôi. 3Tôi muốn giá trị của 5 và những gì đã làm được là một setTimeout 0 như trong ví dụ dưới đây. Hy vọng nó giúp. 4
B--rian 5.27810 Huy hiệu vàng36 Huy hiệu bạc78 Huy hiệu đồng10 gold badges36 silver badges78 bronze badges Đã trả lời ngày 5 tháng 9 năm 2019 lúc 15:05Sep 5, 2019 at 15:05
Tôi đã có một vấn đề tương tự ngày hôm nay trong React. Cuối cùng nhận ra rằng vấn đề đã được gây ra bởi nhà nước chưa được thiết lập. Tôi đã gọi 6 và mặc dù nó đã hiển thị trong bảng điều khiển, tôi dường như không thể truy cập nó trong thành phần của mình cho đến khi tôi bao gồm một séc để kiểm tra xem 7 có được đặt và sau đó gọi 6.Đã trả lời ngày 17 tháng 6 năm 2020 lúc 19:05Jun 17, 2020 at 19:05
AdebolaadebolaAdebola 4791 Huy hiệu vàng7 Huy hiệu bạc1 gold badge7 silver badges10 bronze badges Kiểm tra xem bạn đã áp dụng bất kỳ bộ lọc nào trong bảng điều khiển. Nó xảy ra với tôi trong bảng điều khiển Chrome. Đã trả lời ngày 13 tháng 8 năm 2020 lúc 10:29Aug 13, 2020 at 10:29
Tôi cũng có vấn đề bực bội này, tôi đã thử các giải pháp 9 và 0 và 1 ngay cả khi tôi biết nó sẽ không hoạt động vì tôi nghĩ rằng chúng chủ yếu là JSON hoặc các vấn đề liên quan đến JSON, chắc chắn rằng nó không hoạt động. Trong trường hợp của tôi, tôi đã không nhận thấy ngay lập tức rằng đó là một sai lầm ngớ ngẩn. Tôi thực sự đã truy cập một tên tài sản với một vỏ khác. Nó giống như thế này: 5Tôi phải mất một thời gian để nhận thấy tên tài sản trong trường hợp của tôi có thể có tất cả các trường hợp thường hoặc một số trường hợp hỗn hợp. Hóa ra một chức năng trong ứng dụng web của tôi có một cái gì đó tạo ra một mớ tên tài sản của tôi (nó có một 2 bên cạnh tên khóa được tạo 🤣).Vì vậy, bài học kinh nghiệm, kiểm tra tên tài sản CASING đúng hơn.
Đã trả lời ngày 5 tháng 10 năm 2020 lúc 11:11Oct 5, 2020 at 11:11
jp06jp06jp06 Huy hiệu đồng 1451 Bạc8 Huy hiệu Đồng1 silver badge8 bronze badges Tại sao đối tượng của tôi không xác định JavaScript?Một biến chưa được gán một giá trị là loại không xác định.Một phương thức hoặc câu lệnh cũng trả về không xác định nếu biến đang được đánh giá không có giá trị được gán.Một hàm trả về không xác định nếu một giá trị không được trả về. is of type undefined . A method or statement also returns undefined if the variable that is being evaluated does not have an assigned value. A function returns undefined if a value was not returned .
Tại sao thuộc tính đối tượng của tôi không được xác định?Thuộc tính không xác định chỉ ra rằng một biến chưa được gán một giá trị, hoặc hoàn toàn không được khai báo.a variable has not been assigned a value, or not declared at all.
Làm thế nào để bạn kiểm tra xem đối tượng JavaScript không được xác định?Trong chương trình JavaScript, cách chính xác để kiểm tra xem thuộc tính đối tượng không được xác định là sử dụng toán tử typeof.Nếu giá trị không được xác định, typeOf sẽ trả về chuỗi 'không xác định'.use the typeof operator. If the value is not defined, typeof returns the 'undefined' string.
Làm thế nào để bạn kiểm tra xem một thuộc tính có tồn tại trong một đối tượng JavaScript không?Phương thức HasownProperty () sẽ kiểm tra xem một đối tượng có chứa thuộc tính trực tiếp hay không và sẽ trả về đúng hoặc sai nếu nó tồn tại hay không.Phương thức HasownProperty () sẽ chỉ trả về true cho các thuộc tính trực tiếp và không được kế thừa các thuộc tính từ chuỗi nguyên mẫu. will check if an object contains a direct property and will return true or false if it exists or not. The hasOwnProperty() method will only return true for direct properties and not inherited properties from the prototype chain. |