Hướng dẫn set is not defined javascript - tập hợp không được định nghĩa javascript

Tôi có một ứng dụng ion sử dụng cấu trúc dữ liệu đã đặt theo một trong các phương thức của nó. Khi tôi cố gắng chạy ứng dụng trên thiết bị Android của mình (Android 5.0.2, API 21), tôi gặp lỗi này

ReferenceError: Set is not defined
at Object.myMethod

Đây là đoạn mã mã hiển thị dòng chịu trách nhiệm về lỗi

myMethod: function(userid) {


      var user = [];

      var service = this;
      var userIDs = new Set();
      var promises = [];
    ...}

Tôi không phải là một chuyên gia JavaScript nhưng dường như với tôi rằng đó có thể là một vấn đề với chế độ xem web Android trên thiết bị của tôi không được xây dựng trong việc thực hiện cấu trúc dữ liệu đã đặt. Để gây nhầm lẫn thêm các vấn đề, tôi đã thử nghiệm cùng một ứng dụng này trên một thiết bị khác (HTC One M8 (Android 5.0.1, API 21)) và nó hoạt động tốt mà không có lỗi nào được hiển thị. Có ai biết cách khắc phục điều này không?

Có vẻ như bản phát hành 1.8.6 mới nhất đang ném lỗi trong các phiên bản cũ hơn của Node/V8 không hỗ trợ đối tượng đã đặt.

➜  bunyan node test.js 

/Users/justinmcconnell/Documents/code/bunyan/node_modules/bunyan/lib/bunyan.js:1200
var safeCycles = Set ? safeCyclesSet : safeCyclesArray;
                 ^
ReferenceError: Set is not defined
    at Object. (/Users/justinmcconnell/Documents/code/bunyan/node_modules/bunyan/lib/bunyan.js:1200:18)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object. (/Users/justinmcconnell/Documents/code/bunyan/test.js:3:14)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)

Tôi tin rằng điều này có thể được giải quyết đơn giản bằng cách thay đổi dòng 1200 thành:

myMethod: function(userid) {


      var user = [];

      var service = this;
      var userIDs = new Set();
      var promises = [];
    ...}
1
myMethod: function(userid) {


      var user = [];

      var service = this;
      var userIDs = new Set();
      var promises = [];
    ...}
1

Phiên bản nút của tôi:

➜  bunyan node -v
v0.10.37

package.json:

{
  "dependencies": {
    "bunyan": "1.8.5"
  }
}

test.js:

'use strict';

var bunyan = require('bunyan');
console.log('required');

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ử

myMethod: function(userid) {


      var user = [];

      var service = this;
      var userIDs = new Set();
      var promises = [];
    ...}
2 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
myMethod: function(userid) {


      var user = [];

      var service = this;
      var userIDs = new Set();
      var promises = [];
    ...}
2 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

myMethod: function(userid) {


      var user = [];

      var service = this;
      var userIDs = new Set();
      var promises = [];
    ...}
3 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.

myMethod: function(userid) {


      var user = [];

      var service = this;
      var userIDs = new Set();
      var promises = [];
    ...}
0

Xem thêm

Không được định nghĩa trong JavaScript?

Không được xác định: Trong JavaScript, đây là một trong những lỗi tham chiếu mà JavaScript sẽ ném khi ai đó truy cập biến không nằm trong đống bộ nhớ.one of the reference errors that JavaScript will throw when someone accesses the variable which is not inside the memory heap.

Làm thế nào để bạn giải quyết lỗi không được xác định?

Hãy đi sâu vào!..
Kiểm tra hướng dẫn video của chúng tôi để sửa lỗi JQuery không được xác định.....
Phương pháp 1: Sử dụng tab mạng để gỡ lỗi nếu jQuery đang tải.....
Phương pháp 2: Đảm bảo jQuery được tải.....
Phương pháp 3: Bao gồm JQuery do Google lưu trữ với dự phòng cục bộ.....
Phương pháp 4: Thêm đoạn trích vào WP-Config ..

Làm cách nào để khắc phục lỗi tham chiếu trong JavaScript?

Các lỗi tham chiếu trong JavaScript chủ yếu được ném khi một nỗ lực được thực hiện để tham chiếu một biến không tồn tại hoặc nằm ngoài phạm vi.Do đó, trong phần lớn các trường hợp, một horror tham chiếu có thể được sửa bằng cách đảm bảo rằng biến được tham chiếu được xác định chính xác và đang được gọi trong phạm vi chính xác.making sure that the referenced variable is defined correctly and is being called in the correct scope.

Hàm không được xác định là gì?

Một hàm không được xác định hoặc không được xác định nếu giá trị được nhập không nằm trong miền của nó.if the value to be inputted is not in its domain.