Hướng dẫn can i access a variable that is inside a function javascript? - tôi có thể truy cập một biến bên trong một hàm javascript không?

Do cách JavaScript và hầu hết các ngôn ngữ, các biến phạm vi, bạn không thể truy cập các biến được khai báo bên trong một hàm từ bên ngoài một hàm. Biến chỉ thuộc phạm vi của hàm, không phải phạm vi toàn cầu.

May mắn thay, các chức năng kế thừa phạm vi của người gọi của họ. Vì vậy, cách dễ nhất để làm cho biến của bạn có thể truy cập từ bên ngoài chức năng là khai báo bên ngoài chức năng, sau đó sử dụng nó bên trong hàm.

function one[]{
   var a;

   function two[]{
       a = 10;
       return a;
   }

   return a;
}

Lưu ý rằng bạn nên rất cẩn thận về cách bạn phạm vi các biến của mình. Toàn bộ điểm của các chức năng là đóng gói và cô lập chức năng.

Trong trường hợp hứa hẹn, bạn có thể khai báo một biến bên ngoài lời hứa và sau đó đặt giá trị của nó thành công.

var a;

Parse.doSomething[].then[function[data] {
    a = data;
}];

Chỉnh sửa: Dựa trên những gì bạn đã thể hiện trong các bình luận, bạn đang gặp sự cố ASYNC. Lời hứa là không đồng bộ ý nghĩa họ không chạy theo trình tự trong mã của bạn. Đó là lý do tại sao các cuộc gọi lại successerror tồn tại, sẽ được gọi là một khi lời hứa giải quyết. alert[a] của bạn nằm ngoài cuộc gọi lại hứa hẹn, vì vậy nó chạy ngay lập tức, mà không chờ đợi lời hứa phân tích giải quyết để

var a;

Parse.doSomething[].then[function[data] {
    a = data;
}];
0 vẫn không được xác định. Nếu bạn đặt alert[a] bên trong cuộc gọi lại hứa hẹn,
var a;

Parse.doSomething[].then[function[data] {
    a = data;
}];
0 sẽ được đặt theo điểm đó.
Based on what you showed in the comments, you're having async issues. Promises are asynchronous meaning they don't run in sequence in your code. That's why the success and error callbacks exist, to be called once the promise resolves. Your alert[a] is outside the promise callback, so it runs immediately, without waiting for the Parse promise to resolve so
var a;

Parse.doSomething[].then[function[data] {
    a = data;
}];
0 is still undefined. If you put the alert[a] inside the promise callback,
var a;

Parse.doSomething[].then[function[data] {
    a = data;
}];
0 will have been set by that point.

var a;
query.count[{
    success: function[count] {
        a = count;
        alert[a];
        return a;
    },
    error: function[err] {}
}];

Để truy cập một biến bên ngoài một chức năng trong JavaScript, có thể truy cập biến của bạn từ bên ngoài chức năng. Đầu tiên, khai báo nó bên ngoài chức năng, sau đó sử dụng nó bên trong hàm.

function one[]{
   var a;
   function two[]{
       a = 10;
       return a;
   }
   return two[];
}

Bạn có thể truy cập các biến được khai báo bên trong một hàm từ bên ngoài một hàm. Biến chỉ thuộc về phạm vi chức năng, không phải là phạm vi toàn cầu.

Ví dụ đơn giản Truy cập biến Biến phạm vi chức năng bên ngoài.




      
    function one[]{
     var a;

     function two[]{
      a = 100;
      console.log["Inner function"]
      return a;
    }
    return two[];
  }
   var res = one[];
  console.log[res]
  



Đầu ra::

Một cách khác là không đặt ra Var Var ,, Let Let hay hoặc Const Const sẽ làm cho biến đổi công khai và có thể sử dụng bên ngoài một chức năng.

function Play[]{
  	Video = 12 // Seconds
	var Length = 15
}
console.log[Video] // Prints 12
console.log[Length] // "Lenght" is undefined

Thay đổi một biến bên ngoài hàm js

var global = "Global Variable"; //Define global variable outside of function

function setGlobal[]{
       global = "Hello World!";
};
setGlobal[];
console.log[global]; //This will print out "Hello World"

Hãy bình luận nếu bạn có bất kỳ nghi ngờ hoặc đề xuất nào về chủ đề biến JS này.

Lưu ý: & nbsp; The & nbsp; tất cả các ví dụ JS & nbsp; is & nbsp; được kiểm tra trên trình duyệt firefox và trình duyệt Chrome. The All JS Examples codes are tested on the Firefox browser and the Chrome browser.

Hệ điều hành: & nbsp; windows 10Windows 10

Mã: Phiên bản HTML 5

Bằng cấp về Khoa học máy tính và Kỹ sư: Nhà phát triển ứng dụng và có nhiều ngôn ngữ lập trình kinh nghiệm. Sự nhiệt tình cho công nghệ và thích học kỹ thuật.

Khi bạn khai báo biến toàn cầu trong JavaScript, bạn có thể truy cập nó từ bên trong một chức năng như vậy:

Tuy nhiên, nếu bạn tạo một biến bên trong phạm vi của hàm có cùng tên với GlobalVarable, bạn sẽ mất quyền truy cập vào giá trị của GlobalVarable bên trong phạm vi của hàm.

Nếu bạn đọc mã ở trên theo thứ tự dòng được thực thi, thì đây là những gì bạn nghĩ sẽ xảy ra:

  • Tạo GlobalVarable và gán nó một giá trị.
  • Gọi một số chức năng.
  • Giá trị nhật ký của
    var a;
    
    Parse.doSomething[].then[function[data] {
        a = data;
    }];
    
    3 vào bảng điều khiển. Bạn mong đợi điều này sẽ đăng nhập
    var a;
    
    Parse.doSomething[].then[function[data] {
        a = data;
    }];
    
    4
  • Tạo một biến cục bộ mới với cùng tên với GlobalVarable.
    var a;
    
    Parse.doSomething[].then[function[data] {
        a = data;
    }];
    
    3 và cho nó một giá trị.
  • Đăng nhập biến cục bộ mới này. Bạn có thể mong đợi
    var a;
    
    Parse.doSomething[].then[function[data] {
        a = data;
    }];
    
    6 sẽ được in.

Tuy nhiên, bạn thực sự gặp lỗi. JavaScript sẽ cho bạn biết rằng GlobalVarable không được xác định

var a;

Parse.doSomething[].then[function[data] {
    a = data;
}];
7avascript will tell you that globalVariable is not defined
var a;

Parse.doSomething[].then[function[data] {
    a = data;
}];
7

Explanation:

Điều này là do bất kể nơi bạn xác định biến của mình, nó sẽ kéo biến lên đầu phạm vi kèm theo của chúng. Có nghĩa là, nếu một biến được xác định trong một phạm vi, JavaScript di chuyển tất cả các cách ở đầu phạm vi. Đây là cùng một lý do bạn có thể gọi một hàm trong JavaScript trên dòng 1 mặc dù hàm không được xác định cho đến dòng 2.

Kết quả là ví dụ thứ hai, bạn mất quyền truy cập vào

var a;

Parse.doSomething[].then[function[data] {
    a = data;
}];
3 được xác định bên ngoài phạm vi của hàm, bởi vì nó đã được nâng lên trên cùng của phạm vi [còn gọi là bên trong hàm].

Bạn có thể truy cập một biến bên trong một hàm không?

Bạn có thể truy cập các biến như vậy bên trong và bên ngoài một hàm, vì chúng có phạm vi toàn cầu. Biến X trong mã trên được khai báo bên ngoài hàm: x = 10. Sử dụng hàm showX [], chúng tôi vẫn có thể truy cập X vì nó được khai báo trong phạm vi toàn cầu.. The variable x in the code above was declared outside a function: x = 10 . Using the showX[] function, we were still able to access x because it was declared in a global scope.

Làm thế nào để bạn đọc một biến bên trong hàm CNTT trong JavaScript?

Vì vậy, cách dễ nhất để làm cho biến của bạn có thể truy cập từ bên ngoài chức năng là khai báo trước tiên bên ngoài chức năng, sau đó sử dụng nó bên trong hàm ...
hàm một [] {var a;hàm hai [] {a = 10;trả lại a;} Trả về a;}.
var a;Phân tích cú pháp.làm việc gì đó[].....
var a;truy vấn..

Làm thế nào bạn có thể truy cập một biến toàn cầu bên trong hàm JavaScript?

Để khai báo các biến toàn cầu của JavaScript bên trong hàm, bạn cần sử dụng đối tượng cửa sổ ...
hàm m [] {.
cửa sổ.value = 100; // khai báo biến toàn cầu theo đối tượng cửa sổ ..
hàm n [] {.
cảnh báo [cửa sổ. value]; // truy cập biến toàn cầu từ các chức năng khác ..

Chúng ta có thể truy cập vào chức năng biến bên ngoài trong JavaScript không?

Các biến được khai báo trên toàn cầu [bên ngoài bất kỳ chức năng nào] có phạm vi toàn cầu.Các biến toàn cầu có thể được truy cập từ bất cứ đâu trong chương trình JavaScript.Các biến được khai báo với VAR, LET và Const khá giống nhau khi được khai báo bên ngoài một khối.Global variables can be accessed from anywhere in a JavaScript program. Variables declared with var , let and const are quite similar when declared outside a block.

Bài Viết Liên Quan

Chủ Đề