Sử dụng biến bên ngoài hàm JavaScript

Trong Python, chúng ta có thể khai báo các biến trong ba phạm vi khác nhau. phạm vi cục bộ, phạm vi toàn cầu và phi cục bộ

Một phạm vi biến xác định khu vực mà chúng ta có thể truy cập vào một biến. Ví dụ,

def add_numbers[]:
    sum = 5 + 4

Ở đây, biến sum được tạo bên trong hàm, vì vậy nó chỉ có thể được truy cập bên trong nó [phạm vi cục bộ]. Loại biến này gọi là biến cục bộ

Dựa trên phạm vi, chúng ta có thể phân loại các biến Python thành ba loại

  1. Biến cục bộ
  2. Biến toàn cầu
  3. Biến không cục bộ

Biến cục bộ Python

Khi chúng ta khai báo các biến bên trong hàm thì các biến này sẽ có phạm vi cục bộ [trong hàm]. Chúng tôi không thể truy cập chúng bên ngoài chức năng

Các loại biến này được gọi là biến cục bộ. Ví dụ,

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]

đầu ra

Local Hello
NameError: name 'message' is not defined

Ở đây, biến thông báo là cục bộ của hàm

Local Hello
NameError: name 'message' is not defined
7, vì vậy nó chỉ có thể được truy cập trong hàm

Đó là lý do tại sao chúng tôi gặp lỗi khi cố gắng truy cập bên ngoài chức năng

Local Hello
NameError: name 'message' is not defined
7

Để khắc phục sự cố này, chúng ta có thể biến biến có tên message thành toàn cầu

Biến toàn cục Python

Trong Python, một biến được khai báo bên ngoài hàm hoặc trong phạm vi toàn cục được gọi là biến toàn cục. Điều này có nghĩa là một biến toàn cục có thể được truy cập bên trong hoặc bên ngoài hàm

Hãy xem một ví dụ về cách một biến toàn cục được tạo trong Python

# declare global variable
message = 'Hello'

def greet[]:
    # declare local variable
    print['Local', message]

greet[]
print['Global', message]

đầu ra

Local Hello
Global Hello

Lần này chúng ta có thể truy cập biến thông báo từ bên ngoài hàm

Local Hello
NameError: name 'message' is not defined
7. Điều này là do chúng tôi đã tạo biến thông báo làm biến toàn cục

# declare global variable
message = 'Hello'

Bây giờ, tin nhắn sẽ có thể truy cập được từ bất kỳ phạm vi [khu vực] nào của chương trình

Biến không cục bộ Python

Trong Python, các biến không cục bộ được sử dụng trong các hàm lồng nhau có phạm vi cục bộ không được xác định. Điều này có nghĩa là biến có thể không nằm trong phạm vi cục bộ cũng như phạm vi toàn cầu

Chúng tôi sử dụng từ khóa

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
1 để tạo các biến không cục bộ. Ví dụ,

# outside function 
def outer[]:
    message = 'local'

    # nested function  
    def inner[]:

        # declare nonlocal variable
        nonlocal message

        message = 'nonlocal'
        print["inner:", message]

    inner[]
    print["outer:", message]

outer[]

đầu ra

________số 8

Trong ví dụ trên, có một hàm

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
2 lồng nhau. Chúng tôi đã sử dụng các từ khóa
def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
1 để tạo một biến không cục bộ

Một biến được khai báo ở đầu chương trình hoặc bên ngoài hàm được coi là biến phạm vi toàn cục

Hãy xem một ví dụ về biến phạm vi toàn cầu

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
1

Trong chương trình trên, biến a được khai báo ở đầu chương trình và là biến toàn cục. Nó có nghĩa là biến

# declare global variable
message = 'Hello'

def greet[]:
    # declare local variable
    print['Local', message]

greet[]
print['Global', message]
0 có thể được sử dụng ở bất kỳ đâu trong chương trình

Giá trị của một biến toàn cục có thể được thay đổi bên trong một hàm. Ví dụ,

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
2

Trong chương trình trên, biến a là biến toàn cục. Giá trị của a là xin chào. Sau đó, biến a được truy cập bên trong một hàm và giá trị thay đổi thành 3

Do đó, giá trị của a thay đổi sau khi thay đổi nó bên trong hàm

Ghi chú. Nên tránh sử dụng biến toàn cục vì giá trị của biến toàn cục có thể thay đổi ở các khu vực khác nhau trong chương trình. Nó có thể giới thiệu các kết quả chưa biết trong chương trình

Trong JavaScript, một biến cũng có thể được sử dụng mà không cần khai báo. Nếu một biến được sử dụng mà không khai báo, biến đó sẽ tự động trở thành biến toàn cục

Ví dụ,

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
3

Trong chương trình trên, biến a là biến toàn cục

Nếu biến được khai báo bằng cách sử dụng

# declare global variable
message = 'Hello'

def greet[]:
    # declare local variable
    print['Local', message]

greet[]
print['Global', message]
1, chương trình sẽ báo lỗi

Ghi chú. Trong JavaScript, có

# declare global variable
message = 'Hello'

def greet[]:
    # declare local variable
    print['Local', message]

greet[]
print['Global', message]
2 trong đó một biến không thể được sử dụng mà không khai báo nó. Để tìm hiểu thêm về nghiêm ngặt, hãy truy cập JavaScript Strict

Phạm vi cục bộ

Một biến cũng có thể có phạm vi cục bộ, tôi. e nó chỉ có thể được truy cập trong một chức năng

ví dụ 1. Biến phạm vi cục bộ

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
4

đầu ra

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
5

Trong chương trình trên, biến a là biến toàn cục và biến b là biến cục bộ. Biến b chỉ có thể được truy cập bên trong hàm hello. Do đó, khi chúng tôi cố gắng truy cập biến b bên ngoài hàm, sẽ xảy ra lỗi

hãy để Block Phạm vi

Từ khóa

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
20 có phạm vi khối [biến chỉ có thể được truy cập trong khối ngay lập tức]

ví dụ 2. biến phạm vi khối

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
7

đầu ra

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
8

Trong chương trình trên, biến

  • a là biến toàn cục. Nó có thể được truy cập bất cứ nơi nào trong chương trình
  • b là một biến cục bộ. Nó chỉ có thể được truy cập bên trong hàm
    def greet[]:
    
        # local variable
        message = 'Hello'
        
        print['Local', message]
    
    greet[]
    
    # try to access message variable 
    # outside greet[] function
    print[message]
    21
  • c là một biến trong phạm vi khối. Nó chỉ có thể được truy cập bên trong khối câu lệnh
    def greet[]:
    
        # local variable
        message = 'Hello'
        
        print['Local', message]
    
    greet[]
    
    # try to access message variable 
    # outside greet[] function
    print[message]
    22

Do đó, trong chương trình trên, hai

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
23 đầu tiên hoạt động bình thường

Tuy nhiên, chúng tôi đang cố gắng truy cập biến c trong phạm vi khối bên ngoài khối trong

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
23 thứ ba. Điều này sẽ ném một lỗi

Ghi chú. Trong JavaScript,

def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
25 là phạm vi chức năng và
def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
20 là phạm vi khối. Nếu bạn cố gắng sử dụng
def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
27 bên trong câu lệnh
def greet[]:

    # local variable
    message = 'Hello'
    
    print['Local', message]

greet[]

# try to access message variable 
# outside greet[] function
print[message]
22 trong chương trình trên, thì toàn bộ chương trình sẽ hoạt động, vì c được coi là biến cục bộ

Tôi có thể khai báo biến bên ngoài hàm JavaScript không?

Các biến được khai báo Toàn cầu [ngoài bất kỳ hàm nào] có Phạm vi Toàn cầu . Biến toàn cục có thể được truy cập từ mọi nơi 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 khối.

Tôi có thể truy cập chức năng var bên ngoài không?

Các biến được khai báo bên trong bất kỳ hàm nào có 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 hàm .

Bạn có thể truy cập biến Let bên ngoài phạm vi khối trong JavaScript không?

Không, Bạn không thể truy cập các biến let bên ngoài khối , nếu bạn thực sự muốn truy cập, hãy khai báo nó bên ngoài, đó là phạm vi phổ biến.

Biến nào được khai báo bên ngoài hàm trong câu trả lời JavaScript?

Biến toàn cục . Ngược lại, biến toàn cục là biến được định nghĩa bên ngoài hàm.

Chủ Đề