Let và const trong JavaScript

Giả sử chúng ta đã tạo một hàm và chúng ta cần một biến không đổi bên trong hàm, nghĩa là chúng ta muốn một biến không được cập nhật trong bất kỳ trường hợp nào. Ở đây nếu chúng ta khai báo một biến var hoặc let, thì nó có thể được cập nhật, nhưng nếu chúng ta khai báo một biến const, nó sẽ không được cập nhật trong mọi trường hợp và sẽ hoạt động tốt với chức năng của chúng ta

Khai báo biến so với. Khởi tạo

Để lưu trữ bất kỳ giá trị nào, chúng ta cần một biến, vì vậy trước tiên, chúng ta sẽ khai báo một biến var và sau đó khởi tạo giá trị cho biến

Hãy xem nó bằng một ví dụ-

var myName;
myName = "my name";
console.log[myName] //output => "my name"

Trong ví dụ trên, chúng ta đã khai báo một biến myName ở dòng đầu tiên và sau đó khởi tạo giá trị chuỗi "my name" ở dòng thứ hai

Trong ví dụ trên, chúng ta thực hiện cách tiếp cận hai bước, đầu tiên khai báo một biến và sau đó Khởi tạo nó, nhưng chúng ta có thể thực hiện khai báo và khởi tạo cùng một lúc như sau -

var myName = "my name";
console.log[myName]; //output => "my name"

Trong ví dụ trên, chúng ta lấy biến var làm ví dụ, nhưng chúng ta có thể thực hiện Khai báo và khởi tạo, tương tự với let và const

phạm vi chức năng vs. phạm vi khối

Trước khi tìm hiểu về sự khác biệt giữa let và var và const trong javascript, chúng ta hãy tìm hiểu một số khác biệt giữa phạm vi chức năng và phạm vi khối

Phạm vi

Phạm vi là viết tắt của nơi biến của chúng tôi sẽ có sẵn để sử dụng bên trong mã của chúng tôi và nơi nó sẽ không

Hãy lấy một ví dụ để hiểu nó -


function myFun[] {
    var myName  = "my name";
    console.log[myName];
}

myFun[]; //output => "my name"
console.log[myName]; //output => ReferenceError

Trong ví dụ này, chúng ta có một hàm myFun[];

Khi chúng ta gọi hàm myFun, nó in thành công giá trị của biến myName trên bảng điều khiển, nhưng khi chúng ta cố gắng in biến myName bên ngoài hàm, nó sẽ đưa ra lỗi tham chiếu vì biến myName có phạm vi hàm, đó là lý do tại sao nó không thể truy cập được bên ngoài hàm

phạm vi chức năng

Biến có Phạm vi chức năng có nghĩa là biến sẽ chỉ khả dụng để sử dụng bên trong hàm mà nó đã khai báo, sẽ không thể truy cập được bên ngoài hàm và sẽ đưa ra Lỗi tham chiếu nếu chúng ta cố gắng truy cập

Đây là một ví dụ -

function name[] {
    var myAge = 22;
    console.log[myAge]; 
}

name[] //output => 22[

console.log[myAge]; //output => ReferenceError

Trong ví dụ này, chúng ta tạo một tên hàm [] sau đó chúng ta khai báo một biếnmyAge bên trong hàm, khi chúng ta gọi hàm, nó sẽ in biến myAge trên bàn điều khiển, nhưng khi chúng ta cố gắng truy cập biến bên ngoài hàm, nó sẽ ném ra một

phạm vi khối

Khối có nghĩa là một cặp dấu ngoặc nhọn, một khối có thể là bất kỳ thứ gì có chứa dấu ngoặc nhọn mở và đóng

Biến có Phạm vi khối sẽ chỉ khả dụng để sử dụng bên trong khối mà nó đã khai báo, sẽ không thể truy cập được bên ngoài khối và sẽ đưa ra Lỗi tham chiếu nếu chúng tôi cố gắng truy cập

Đây là một ví dụ -

if[true] {
    let myName = "your name";
    console.log[myName]; //output=> "your name"
}
console.log[myName]; //output => ReferenceError

Trong ví dụ trên, chúng ta có một khối if với một điều kiện đúng, và bên trong khối if, chúng ta khai báo một tên biến myName. Bây giờ khi chúng tôi cố in biến myName ra bàn điều khiển, nó sẽ in thành công, nhưng khi chúng tôi cố in biến bên ngoài khối if, chúng tôi gặp Lỗi tham chiếu

Biến var trong JS là gì?

Biến Var là cách cũ để khai báo một biến trong javascript;

Ví dụ về biến var với phạm vi chức năng

function myFun[] {
    var myName = "my name";
    console.log[myName];
}
myFun[]; //output => "my name"
console.log[myName]; //output=> re

Ở ví dụ trên, chúng ta có hàm myFun[], bên trong hàm chúng ta khai báo một biến myName và in ra console

Khi chúng ta gọi hàm, nó in thành công biến myName trên bàn điều khiển, nhưng khi chúng ta cố gắng in biến myName bên ngoài hàm, nó sẽ ném ReferenceError vì nó không thể truy cập được bên ngoài hàm

Khi chúng ta khai báo một biến var bên ngoài hàm, nó sẽ có phạm vi toàn cục và sẽ có sẵn để sử dụng ở mọi nơi trong toàn bộ chương trình

Ví dụ về biến var có phạm vi toàn cục

var myName = "your name";

function myFun[] {
    console.log[myName]; 
}

myFun[]; //output => "your name"

if[true] {
    console.log[myName]; //output => "your name"
}

console.log[myName]; //output => "your name"

Trong ví dụ trên, chúng ta có một biến myName được khai báo bên ngoài thân hàm và đó là lý do tại sao có phạm vi toàn cục

Bây giờ, chúng tôi đã cố gắng truy cập biến này bên trong hàm myFun của chúng tôi, nó in biến đó vào bảng điều khiển, tiếp theo chúng tôi có một khối if với điều kiện là đúng;

Điều cuối cùng chúng tôi làm là truy cập trực tiếp vào biến và chúng tôi đã truy cập thành công vào biến và in nó trên bàn điều khiển

Như chúng ta có thể thấy, biến myName có thể truy cập được ở mọi nơi trong chương trình của chúng ta vì nó có phạm vi toàn cầu

Nâng của biến var

Khi chúng ta khai báo một biến var, nó sẽ được nâng lên trên cùng của phạm vi và được gán giá trị là không xác định. Hãy lấy một ví dụ để hiểu nó -

console.log[myName]; //output => undefined 
var myName = "my name";

Trong ví dụ trên, chúng tôi đang cố gắng truy cập biến myName trước khi khai báo

Đây là giao diện khi biến myName được nâng lên đầu phạm vi -

________số 8

Chúng ta có thể thấy ở đây biến của chúng ta được nâng lên đầu phạm vi và được khởi tạo với giá trị không xác định, nhưng việc khởi tạo giá trị xảy ra khi biến được khai báo

Nếu chúng ta chỉ nói về việc cẩu, thì đó là một tính năng do javascript cung cấp để di chuyển các biến và hàm lên đầu phạm vi trước khi thực thi mã;

Ví dụ về khai báo hàm

myFun[] //output => "my name"
function myFun[] {
    var myName = "my name";
    console.log[myName];
}

Trong ví dụ trên, chúng ta đang gọi hàm trước khi khai báo, nhưng nó vẫn gọi hàm thành công

Mã ví dụ của chúng tôi sẽ trông như thế này sau khi được chuyển lên trên cùng

var myName = "my name";
console.log[myName]; //output => "my name"
0

Sự cố với biến var

  • biến var có thể được khai báo lại và cập nhật. khai báo lại cho phép khai báo nhiều biến trùng tên, chính vì lý do này nếu ta khai báo nhầm biến mới sẽ ghi đè giá trị của biến ban đầu

Hãy thảo luận về cách nó có thể được khai báo lại với một ví dụ-

var myName = "my name";
console.log[myName]; //output => "my name"
1

Ở đây chúng ta có một biến tên, một biến tuổi và một khối điều kiện if, điều kiện if của chúng ta ở đây là đúng, vì vậy mã bên trong khối if sẽ chạy và ghi đè lên biến tên đã được khai báo trước đó do hành vi khai báo lại của biến var. Hành vi này có thể ảnh hưởng đến đầu ra của mã và dẫn đến đầu ra không mong muốn

  • Một vấn đề khác là không thể khai báo một biến không đổi. Khi chúng ta muốn khai báo một biến có thể thay đổi/cập nhật thì không sao, nhưng nếu chúng ta muốn khai báo một biến cố định mà một khi đã khai báo thì không thể thay đổi được

Biến Let trong JS là gì?

Phiên bản javascript mới [ES6] giới thiệu hai phương thức khai báo biến mới trong javascript và một phương thức là sử dụng từ khóa let để khai báo biến

Đây là một ví dụ về khai báo biến let -

Trong ví dụ trên, chúng ta đã sử dụng từ khóa let để khai báo biến let và khởi tạo giá trị chuỗi "my name"

Hãy để biến giới thiệu một tính năng đặc biệt không cho phép khai báo lại biến, nếu bạn còn nhớ, khai báo lại là một vấn đề trong biến var nhưng hãy để biến giải quyết vấn đề này

Ví dụ khai báo lại biến let

var myName = "my name";
console.log[myName]; //output => "my name"
2

Ví dụ trên cho thấy sự khác biệt giữa let và var và const trong javascript. Trong ví dụ trên, chúng tôi đã khai báo một biến myName và lại khai báo một biến có cùng tên khi chúng tôi cố gắng in biến đó trên bàn điều khiển, nó ném SyntaxError. khai báo lại tên

phạm vi của biến let

Biến let có phạm vi khối, nghĩa là biến let chỉ có thể truy cập được bên trong khối mà nó được khai báo nếu chúng ta thử truy cập bên ngoài phạm vi, nó sẽ hiển thị Lỗi tham chiếu

Hãy lấy một ví dụ để hiểu nó-

var myName = "my name";
console.log[myName]; //output => "my name"
3

Ví dụ trên cho thấy sự khác biệt giữa let và var và const trong javascript. Trong ví dụ trên, chúng ta có một biến myAge và một khối điều kiện if, điều kiện if của chúng ta ở đây là đúng, vì vậy chúng ta đã vào bên trong khối if. Bên trong khối if, chúng ta có một biến khác, myName, nằm trong phạm vi khối. Bây giờ chúng tôi in biến myName ra bàn điều khiển bên trong khối if, khi chúng tôi cố gắng in biến myName bên ngoài khối if, nó không thể truy cập được và ném ReferenceError do phạm vi

khai báo lại biến let

let biến không cho phép khai báo lại biến, nhưng nó cho phép chúng ta cập nhật biến, khai báo lại biến là một vấn đề lớn với biến var let biến đã giúp chúng ta tránh được vấn đề do khai báo lại biến

Hãy lấy một ví dụ để hiểu việc khai báo lại trong biến let -

var myName = "my name";
console.log[myName]; //output => "my name"
4

Ví dụ trên cho thấy sự khác biệt giữa let và var và const trong javascript. Ở đây chúng ta có một biến myName, sau đó chúng ta lại khai báo một biến có cùng tên và sau đó cố gắng in giá trị của biến trên bàn điều khiển, và kết quả là nó báo lỗi cú pháp

Bây giờ hãy lấy một ví dụ để hiểu cách để biến được cập nhật -

var myName = "my name";
console.log[myName]; //output => "my name"
5

Ví dụ trên cho thấy sự khác biệt giữa let và var và const trong javascript. Ở đây chúng ta khai báo một biến myName và gán giá trị của "my name", sau đó, ở dòng tiếp theo, chúng ta gán một giá trị khác cho biến myName, đó là "my new name". cuối cùng, khi chúng tôi cố gắng in giá trị của biến myName trên bàn điều khiển, nó sẽ in giá trị cập nhật của biến myName, là "tên mới của tôi" chứ không phải "tên của tôi"

Nâng biến let

Biến let cũng được đưa lên đầu phạm vi Nhưng không được gán bất kỳ giá trị nào, kết quả là nếu chúng ta cố truy cập biến let trước khi khai báo, nó sẽ báo lỗi cú pháp vì nó không có bất kỳ giá trị nào để in

Hãy lấy một ví dụ để hiểu thêm về nó -

var myName = "my name";
console.log[myName]; //output => "my name"
6

Ví dụ trên cho thấy sự khác biệt giữa let và var và const trong javascript. Ở đây, chúng tôi đang cố gắng truy cập một biến myName trước khi khai báo nhưng gặp ReferenceError vì sau khi được đưa lên đầu biến phạm vi vẫn chưa được khởi tạo

Biến Const trong JS là gì?

Phiên bản javascript mới [ES6] giới thiệu 2 phương thức khai báo biến mới trong javascript, một là sử dụng từ khóa const để khai báo biến hằng

Ví dụ về biến const

Hãy để biến giới thiệu một tính năng đặc biệt cho phép các biến không đổi. Nếu bạn nhớ khai báo một biến hằng là một vấn đề trong biến var, nhưng biến const giải quyết được vấn đề này

Hãy xem nó bằng một ví dụ

var myName = "my name";
console.log[myName]; //output => "my name"
7

Ví dụ trên cho thấy sự khác biệt giữa let và var và const trong javascript. Trong ví dụ trên, chúng ta đã khai báo một biến myName và khởi tạo một giá trị chuỗi là "my name", khi chúng ta cố gắng cập nhật biến myName, nó sẽ báo lỗi kiểu vì chúng ta không thể cập nhật giá trị của biến const

khai báo const là phạm vi khối

Biến const cũng có phạm vi Khối như biến let, biến const cũng không thể truy cập ngoài phạm vi. Hãy lấy một ví dụ để hiểu

var myName = "my name";
console.log[myName]; //output => "my name"
8

Ví dụ trên cho thấy sự khác biệt giữa let và var và const trong javascript. Trong ví dụ trên, chúng tôi có một khối if và một biến myName, bên trong khối if, chúng tôi in thành công biến myName trên bàn điều khiển, nhưng khi chúng tôi cố in biến myName bên ngoài khối if thì nó báo lỗi vì

Const Biến không thể được cập nhật hoặc khai báo lại

Biến const không thể được cập nhật hoặc khai báo lại;

Hãy lấy một ví dụ để hiểu cập nhật trong const -

var myName = "my name";
console.log[myName]; //output => "my name"
9

Trong ví dụ này, chúng ta có một biến myName ở dòng đầu tiên, sau đó chúng ta khởi tạo một giá trị khác cho biến myName của chúng ta

Khi chúng tôi cố in biến myName ra bàn điều khiển, nó hiển thị TypeError, điều đó có nghĩa là chúng tôi không thể cập nhật biến const

Hãy lấy một ví dụ để hiểu khai báo lại trong const -


function myFun[] {
    var myName  = "my name";
    console.log[myName];
}

myFun[]; //output => "my name"
console.log[myName]; //output => ReferenceError

0

Ví dụ trên cho thấy sự khác biệt giữa let và var và const trong javascript. Trong ví dụ, chúng ta có một biến myName ở dòng đầu tiên, sau đó chúng ta lại khai báo một biến khác cùng tên

Khi chúng tôi cố gắng in biến myName ra bàn điều khiển, nó sẽ hiển thị SyntaxError, điều đó có nghĩa là chúng tôi không thể khai báo lại biến const

cẩu của const

Biến const cũng được đưa lên trên cùng của phạm vi Nhưng không khởi tạo bất kỳ giá trị nào, do đó, nếu chúng ta cố gắng truy cập biến const trước khi khai báo, nó sẽ báo lỗi cú pháp vì nó không có bất kỳ giá trị nào

Hãy lấy một ví dụ để hiểu thêm


function myFun[] {
    var myName  = "my name";
    console.log[myName];
}

myFun[]; //output => "my name"
console.log[myName]; //output => ReferenceError

1

Ví dụ trên cho thấy sự khác biệt giữa let và var và const trong javascript. Ở đây, chúng tôi đang cố gắng truy cập một biến myName trước khi khai báo nhưng gặp ReferenceError vì sau khi được nâng lên đầu phạm vi, biến const vẫn chưa được khởi tạo

Sự khác biệt giữa Var, Let và Const

Bảng sau tóm tắt sự khác biệt giữa let và var và const trong javascript

varletconstvar có chức năng hoặc phạm vi toàn cầu. hãy có phạm vi khối. biến const có phạm vi khối. Nó được nâng lên đầu phạm vi của nó và được khởi tạo không xác định. Nó cũng được nâng lên đầu phạm vi của nó nhưng không khởi tạo. Nó cũng được nâng lên đầu phạm vi của nó nhưng không khởi tạo. Nó có thể được cập nhật hoặc khai báo lại. Nó chỉ có thể được cập nhật và không thể được khai báo lại. Nó không thể được cập nhật hoặc khai báo lại. Đó là một cách cũ để khai báo một biến. Đó là một cách mới để khai báo các biến được giới thiệu trong ES6. Đây cũng là một cách mới để khai báo một biến, được giới thiệu trong ES6

Sự khác biệt giữa LET và const trong JavaScript là gì?

Trong JavaScript, các từ khóa var , let và const hơi khó hiểu. Vì vậy, trong ảnh này, chúng ta sẽ xem xét sự khác biệt giữa các từ khóa này. . Phạm vi

Sự khác biệt giữa VAR Let & const là gì?

var là phạm vi chức năng trong khi let và const là phạm vi khối. biến var có thể được gán lại trong khi biến let và const không thể. biến var được khai báo bằng từ khóa var trong khi biến let và const được khai báo bằng từ khóa let và const tương ứng

Tôi nên sử dụng let hay const?

Tóm tắt. Theo nguyên tắc chung, bạn luôn phải khai báo biến với const , nếu bạn nhận thấy giá trị của biến cần thay đổi, hãy quay lại và thay đổi thành . Sử dụng let khi bạn biết rằng giá trị của một biến sẽ thay đổi. Sử dụng const cho mọi biến khác.

Const JavaScript là gì?

Khai báo const tạo ra các hằng số trong phạm vi khối, giống như các biến được khai báo bằng từ khóa let . Giá trị của một hằng số không thể thay đổi thông qua gán lại [i. e. bằng cách sử dụng toán tử gán] và nó không thể được khai báo lại [i. e. thông qua một khai báo biến].

Chủ Đề