Phạm vi khối và phạm vi chức năng trong javascript

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

// program to print a text 
let a = "hello";

function greet [] {
    console.log[a];
}

greet[]; // hello

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

// program to show the change in global variable
let a = "hello";

function greet[] {
    a = 3;
}

// before the function call
console.log[a];

//after the function call
greet[];
console.log[a]; // 3
6 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ụ,

// program to show the change in global variable
let a = "hello";

function greet[] {
    a = 3;
}

// before the function call
console.log[a];

//after the function call
greet[];
console.log[a]; // 3

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ụ,

function greet[] {
    a = "hello"
}

greet[];

console.log[a]; // hello

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

// program to show the change in global variable
let a = "hello";

function greet[] {
    a = 3;
}

// before the function call
console.log[a];

//after the function call
greet[];
console.log[a]; // 3
7, chương trình sẽ báo lỗi

Ghi chú. Trong JavaScript, có

// program to show the change in global variable
let a = "hello";

function greet[] {
    a = 3;
}

// before the function call
console.log[a];

//after the function call
greet[];
console.log[a]; // 3
8 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 địa phương

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ộ

// program showing local scope of a variable
let a = "hello";

function greet[] {
    let b = "World"
    console.log[a + b];
}

greet[];
console.log[a + b]; // error

đầu ra

helloWorld
Uncaught ReferenceError: b is not defined

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

// program to show the change in global variable
let a = "hello";

function greet[] {
    a = 3;
}

// before the function call
console.log[a];

//after the function call
greet[];
console.log[a]; // 3
0 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

// program showing block-scoped concept
// global variable
let a = 'Hello';

function greet[] {

    // local variable
    let b = 'World';

    console.log[a + ' ' + b];

    if [b == 'World'] {

        // block-scoped variable
        let c = 'hello';

        console.log[a + ' ' + b + ' ' + c];
    }

    // variable c cannot be accessed here
    console.log[a + ' ' + b + ' ' + c];
}

greet[];

đầu ra

Hello World
Hello World hello
Uncaught ReferenceError: c is not defined

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
    // program to show the change in global variable
    let a = "hello";
    
    function greet[] {
        a = 3;
    }
    
    // before the function call
    console.log[a];
    
    //after the function call
    greet[];
    console.log[a]; // 3
    1
  • 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
    // program to show the change in global variable
    let a = "hello";
    
    function greet[] {
        a = 3;
    }
    
    // before the function call
    console.log[a];
    
    //after the function call
    greet[];
    console.log[a]; // 3
    2

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

// program to show the change in global variable
let a = "hello";

function greet[] {
    a = 3;
}

// before the function call
console.log[a];

//after the function call
greet[];
console.log[a]; // 3
3 đầ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

// program to show the change in global variable
let a = "hello";

function greet[] {
    a = 3;
}

// before the function call
console.log[a];

//after the function call
greet[];
console.log[a]; // 3
3 thứ ba. Điều này sẽ ném một lỗi

Ghi chú. Trong JavaScript,

// program to show the change in global variable
let a = "hello";

function greet[] {
    a = 3;
}

// before the function call
console.log[a];

//after the function call
greet[];
console.log[a]; // 3
5 là phạm vi chức năng và
// program to show the change in global variable
let a = "hello";

function greet[] {
    a = 3;
}

// before the function call
console.log[a];

//after the function call
greet[];
console.log[a]; // 3
0 là phạm vi khối. Nếu bạn cố gắng sử dụng
// program to show the change in global variable
let a = "hello";

function greet[] {
    a = 3;
}

// before the function call
console.log[a];

//after the function call
greet[];
console.log[a]; // 3
7 bên trong câu lệnh
// program to show the change in global variable
let a = "hello";

function greet[] {
    a = 3;
}

// before the function call
console.log[a];

//after the function call
greet[];
console.log[a]; // 3
2 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ộ

Phạm vi khối trong JavaScript là gì?

Phạm vi cấp khối. Phạm vi này hạn chế biến được khai báo bên trong một khối cụ thể, khỏi sự truy cập của bên ngoài khối . Từ khóa let & const tạo điều kiện cho các biến được đặt trong phạm vi khối. Để truy cập các biến của khối cụ thể đó, chúng ta cần tạo một đối tượng cho nó.

Sự khác biệt giữa phạm vi toàn cầu và phạm vi khối trong JavaScript là gì?

Trong môi trường trình duyệt, phạm vi toàn cầu được kiểm soát bởi đối tượng window trong khi ở Node. js, nó được điều khiển bởi đối tượng toàn cầu. Phạm vi khối là những gì bạn nhận được khi sử dụng câu lệnh if, câu lệnh for, v.v.

Sự khác biệt giữa khối và phạm vi là gì?

phạm vi là nơi bạn có thể tham chiếu đến một biến. một khối xác định phạm vi khối một biến được xác định bên trong một khối sẽ chỉ được xác định bên trong khối đó và bạn không thể tham chiếu nó sau khi kết thúc khối.

Sự khác biệt giữa phạm vi và chức năng là gì?

Phạm vi xác định khả năng truy cập của các biến và các tài nguyên khác trong mã, chẳng hạn như hàm và đối tượng . Phạm vi chức năng JavaScript có thể có hai loại khác nhau, phạm vi ngôn ngữ và phạm vi toàn cầu. Biến cục bộ được khai báo bên trong hàm và chỉ có thể được truy cập bên trong hàm.

Chủ Đề