Hướng dẫn get variable value outside function javascript - lấy giá trị biến bên ngoài hàm javascript

Tôi đã đập đầu ra khỏi một bức tường gạch với cái này và một người khác đều không thành công. Những gì tôi muốn làm là có quyền truy cập vào các giá trị được đặt trong một mảng trong một hàm nhưng bên ngoài hàm đó. Làm thế nào điều này có thể được thực hiện? Ví dụ:

function profileloader()
{
    profile = [];
    profile[0] = "Joe";
    profile[1] = "Bloggs";
    profile[2] = "images/joeb/pic.jpg";
    profile[3] = "Web Site Manager";
}

Sau đó tôi sẽ tiếp tục xuống trang trong một thẻ đoạn văn có một cái gì đó như:

document.write("Firstname is: " + profile[0]);

Rõ ràng điều đó sẽ được chứa trong thẻ tập lệnh nhưng tất cả những gì tôi nhận được là một lỗi trên bảng điều khiển: "Cấu hình [0] không được xác định".

Có ai có bất kỳ ý tưởng mà tôi đang đi sai? Tôi dường như không thể tìm ra nó và không có giải pháp nào khác mà tôi đã thấy khi chuyển các giá trị từ chức năng sang chức năng hoặc bên ngoài hàm, đã hoạt động cho đến nay.

Cảm ơn bất cứ ai có thể giúp tôi với điều này, đó có lẽ là điều đơn giản mà tôi đã bỏ lỡ!

Khi được hỏi ngày 23 tháng 5 năm 2012 lúc 5:39May 23, 2012 at 5:39

Hướng dẫn get variable value outside function javascript - lấy giá trị biến bên ngoài hàm javascript

GeordieDave1980GeordieDave1980GeordieDave1980

5694 Huy hiệu vàng10 Huy hiệu bạc24 Huy hiệu đồng4 gold badges10 silver badges24 bronze badges

Vì bạn không có

document.write("Firstname is: " + profile[0]);
0 ở phía trước
document.write("Firstname is: " + profile[0]);
1, nó được lưu trữ trong phạm vi cửa sổ toàn cầu.

Điều tôi nghi ngờ là bạn đã quên gọi pfileloader () trước khi sử dụng nó.

Đó là thực tế tốt là tuyên bố các biến toàn cầu của bạn một cách rõ ràng, như thể hiện trong các câu trả lời khác trên trang này

Nó không được coi là thực hành tốt để dựa vào tác dụng phụ.


Mã nhận xét để hiển thị những gì đang diễn ra, lưu ý không được khuyến nghị phương thức:NOTE not recommended method:

Điều này sẽ hoạt động. Và nó hoạt động: Bản demo

function profileloader()
{
    profile = []; // no "var" makes this global in scope
    profile[0] = "Joe";
    profile[1] = "Bloggs";
    profile[2] = "images/joeb/pic.jpg";
    profile[3] = "Web Site Manager";
}
profileloader(); // mandatory
document.write("Firstname is: " + profile[0]);

Đã trả lời ngày 23 tháng 5 năm 2012 lúc 5:49May 23, 2012 at 5:49

MPLUNGJANMPLUNGJANmplungjan

160K27 Huy hiệu vàng168 Huy hiệu bạc226 Huy hiệu Đồng27 gold badges168 silver badges226 bronze badges

6

Tuyên bố nó bên ngoài chức năng để phạm vi bên ngoài có thể nhìn thấy nó (mặc dù vậy, hãy cẩn thận với Globals)

var profile = [];
function profileloader(){
    profile[0] = "Joe";
    profile[1] = "Bloggs";
    profile[2] = "images/joeb/pic.jpg";
    profile[3] = "Web Site Manager";
}

hoặc có chức năng trả về nó:

function profileloader(){
    var profile = [];
    profile[0] = "Joe";
    profile[1] = "Bloggs";
    profile[2] = "images/joeb/pic.jpg";
    profile[3] = "Web Site Manager";
    return profile;
}

var myprofile = profileloader(); //myprofile === profile

Đã trả lời ngày 23 tháng 5 năm 2012 lúc 5:40May 23, 2012 at 5:40

3

Phạm vi trong JavaScript xác định khả năng truy cập của các biến, đối tượng và chức năng.

Có hai loại phạm vi trong JavaScript.

  1. Phạm vi toàn cầu
  2. Phạm vi địa phương

Phạm vi toàn cầu

Các biến được khai báo bên ngoài bất kỳ chức năng nào trở thành biến toàn cầu. Các biến toàn cầu có thể được truy cập và sửa đổi từ bất kỳ chức năng nào.

<script>

    var userName = "Bill";

    function modifyUserName() {
            userName = "Steve";
        };

    function showUserName() {
            alert(userName);
        };

    alert(userName); // display Bill
    
    modifyUserName();
    showUserName();// display Steve

</script>

Trong ví dụ trên, tên người dùng biến trở thành biến toàn cầu vì nó được khai báo bên ngoài bất kỳ chức năng nào. Hàm modifyUserName () sửa đổi tên người dùng là tên người dùng là biến toàn cầu và có thể được truy cập bên trong bất kỳ chức năng nào. Theo cách tương tự, hàm showUserName () hiển thị giá trị hiện tại của biến tên người dùng. Thay đổi giá trị của biến toàn cầu trong bất kỳ chức năng nào sẽ phản ánh trong suốt chương trình.

Xin lưu ý rằng các biến được khai báo bên trong một hàm không có từ khóa VAR cũng trở thành biến toàn cầu.var keyword also become global variables.

<script>

    function createUserName() {
        userName = "Bill";
    }

    function modifyUserName() {
        if(userName)
            userName = "Steve";
    };

    function showUserName() {
        alert(userName);  
    }
    
    createUserName();
    showUserName(); // Bill 

    modifyUserName();
    showUserName(); // Steve 

    
</script>

Trong ví dụ trên, tên người dùng biến được khai báo mà không có từ khóa var bên trong createUserName (), do đó, nó trở thành biến toàn cầu tự động sau khi gọi createdUserName () lần đầu tiên.var keyword inside createUserName(), so it becomes global variable automatically after calling createUserName() for the first time.

Một biến tên người dùng sẽ chỉ trở thành biến toàn cầu sau khi createUserName () được gọi ít nhất một lần. Gọi showusername () trước createUserName () sẽ ném một ngoại lệ "Tên người dùng không được xác định".

Phạm vi địa phương

Các biến được khai báo bên trong bất kỳ chức năng nào với từ khóa VAR được gọi là biến cục bộ. Các biến cục bộ không thể được truy cập hoặc sửa đổi bên ngoài khai báo chức năng.var keyword are called local variables. Local variables cannot be accessed or modified outside the function declaration.

<script>
    
    function createUserName() {
        var userName = "Bill";
    }

    function showUserName() {
        alert(userName);
    }

    createUserName();
    showUserName(); // throws error: userName is not defined

</script>

Hướng dẫn get variable value outside function javascript - lấy giá trị biến bên ngoài hàm javascript
Các tham số chức năng được coi là biến cục bộ.

Trong ví dụ trên, tên người dùng là hàm cục bộ để createUserName () hàm. Nó không thể được truy cập trong hàm showuserName () hoặc bất kỳ hàm nào khác. Nó sẽ gây ra một lỗi nếu bạn cố gắng truy cập một biến không nằm trong phạm vi địa phương hoặc toàn cầu. Sử dụng thử Catch Block để xử lý ngoại lệ.

Một số lời khuyên..

Nếu biến cục bộ và biến toàn cầu có cùng tên thì việc thay đổi giá trị của một biến không ảnh hưởng đến giá trị của biến khác.

var userName = "Bill";

function ShowUserName()
{
    var userName = "Steve";

    alert(userName); // "Steve"
}

ShowUserName();

alert(userName); // Bill

JavaScript không cho phép phạm vi cấp khối bên trong {}. Ví dụ: các biến được xác định trong khối nếu khối có thể được truy cập bên ngoài nếu khối, bên trong một hàm.

Function NoBlockLevelScope(){
    
    if (1 > 0)
    {
        var myVar = 22;

    }

    alert(myVar);
}

NoBlockLevelScope();

  1. JavaScript có phạm vi toàn cầu và phạm vi địa phương.
  2. Các biến được khai báo và khởi tạo bên ngoài bất kỳ chức năng nào trở thành biến toàn cầu.
  3. Các biến được khai báo và khởi tạo chức năng bên trong trở thành các biến cục bộ cho hàm đó.
  4. Các biến được khai báo mà không có từ khóa VAR bên trong bất kỳ chức năng nào tự động trở thành các biến toàn cầu.var keyword inside any function becomes global variables automatically.
  5. Các biến toàn cầu có thể được truy cập và sửa đổi ở bất cứ đâu trong chương trình.
  6. Các biến cục bộ không thể được truy cập bên ngoài khai báo chức năng.
  7. Biến toàn cầu và biến cục bộ có thể có cùng tên mà không ảnh hưởng đến nhau.
  8. JavaScript không cho phép phạm vi cấp khối bên trong khung {}.

Bạn muốn kiểm tra xem bạn biết JavaScript bao nhiêu?

Làm thế nào để bạn gọi một biến bên ngoài một hàm?

Sử dụng cú pháp thuộc tính đối tượng để truy cập một biến bên ngoài hàm. Trong một chức năng có tên Func, sử dụng Func cú pháp. Biến = giá trị để lưu trữ giá trị trong biến như một thuộc tính của func. Để truy cập giá trị bên ngoài func, sử dụng func () để chạy func, sau đó sử dụng chức năng cú pháp_name. to access a variable outside of a function. In a function named func , use the syntax func. variable = value to store value in variable as an attribute of func . To access value outside of func , use func() to run func , then use the syntax function_name.

Var có thể được sử dụng bên ngoài một chức năng?

Các biến được khai báo bên ngoài bất kỳ chức năng và khối nào là toàn cầu và được cho là có phạm vi toàn cầu.Điều này có nghĩa là bạn có thể truy cập chúng từ bất kỳ phần nào của chương trình JavaScript hiện tại.Bạn có thể sử dụng VAR, LET và Const để khai báo các biến toàn cầu.You can use var , let , and const to declare global variables.

Biến nào được khai báo bên ngoài một hàm trong JavaScript?

Một biến toàn cầu của JavaScript được khai báo bên ngoài hàm hoặc được khai báo với đối tượng cửa sổ.Nó có thể được truy cập từ bất kỳ chức năng.Hãy xem ví dụ đơn giản về biến toàn cầu trong JavaScript.global variable is declared outside the function or declared with window object. It can be accessed from any function. Let's see the simple example of global variable in JavaScript.

$ Phạm vi trong JavaScript là gì?

Phạm vi trong JavaScript đề cập đến bối cảnh hiện tại của mã, xác định khả năng truy cập của các biến vào JavaScript.Hai loại phạm vi là địa phương và toàn cầu: các biến toàn cầu là các loại được khai báo bên ngoài một khối.Các biến cục bộ là những biến được khai báo bên trong một khối.the current context of code, which determines the accessibility of variables to JavaScript. The two types of scope are local and global: Global variables are those declared outside of a block. Local variables are those declared inside of a block.