Var là khai báo gì

- Var: là từ khoá dùng để khai báo biến. Có thể khai báo nhiều danh sách biến có những kiểu dữ liệu khác nhau

- Danh sách biến: tên các biến được viết cách nhau bởi dấu phẩy ",".

- Kiểu dữ liệu: là một kiểu dữ liệu chuẩn

Trong ngôn ngữ Pascal, cấu trúc chương trình của khai báo biến như sau:

Var là khai báo gì

Bảng 1. Cấu trúc chương trình của khai báo biến 

Ví dụ:

Xét khai báo biến:

Var

  X, Y, Z: real;

  C: char;

  I, J: byte;

  N: word;

Tổng bộ nhớ cần cấp phát (Dựa vào bảng Bộ nhớ lưu trữ một giá trị của các kiểu dữ liệu đã học trong Bài 4: Một số kiểu dữ liệu chuẩn):

- X (6 byte); Y (6 byte); Z (6 byte);

- C (1 byte); Y (1 byte); J (1 byte);

- N (2 byte);

- Tổng 23 byte

Khi khai báo biến cần lưu ý:

- Cần đặt tên biến sao cho gợi nhớ đến ý nghĩa của nó. 

Ví dụ: Cần đặt tên hai biến biểu diễn điểm toán, điểm tin thì không nên vì ngắn gọn mà đặt tên biến là d1, d2 mà nên đặt là dtoan, dtin

- Không nên đặt tên quá ngắn hay quá dài, dễ dẫn đến mắc lỗi hoặc hiểu nhầm. 

Ví dụ: Không nên dùng d1, d2 hay diemmontoan, diemmontin cho điểm toán, điểm tin của học sinh

- Khai báo biến cần quan tâm đến phạm vi giá trị của nó. 

Ví dụ: Khi khai báo biến biểu diễn số học sinh của một lớp có thể sử dụng kiểu byte, nhưng biến biểu diễn số học sinh của toàn trường thì phải thuộc kiểu word

Một trong những tính năng nổi bật của ECMAScript 2015 đó là sự bổ sung let và const phục vụ cho việc khai báo biến dữ liệu. Vậy sự khác biệt giữa biến khai báo dùng let và biến khai báo dùng var là gì, thì ở bài viết này chúng ta sẽ cùng tìm hiểu .

ECMAScript 2015

ES2015 đã giới thiệu 2 keywords mới quan trọng là: 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2 và 
{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
3.

Hai từ khóa này cung cấp các biến Block Scope (và constant) trong JavaScript.

Trước ES2015, JavaScript chỉ có 2 loại phạm vi: phạm vi toàn cục (Global Scope) và phạm vi của hàm (Function Scope). 

Global Scope

Những biến được khai báo bên ngoài bất kì một hàm sẽ có phạm vi toàn cục.

Ví dụ:

var carName = "Volvo";

// code ở đây có thể sử dụng biến carName

function myFunction() {
  // code ở đây cũng có thể sử dụng biến carName
}

Biến toàn cục có thể được truy cập từ bất cứ đâu trong chương trình JavaScript .

Function Scope

Biến được khai báo cục bộ (bên trong một hàm) sẽ có phạm vi cục bộ.

Ví dụ:

// code ở đây không thể sử dụng biến carName

function myFunction() {
  var carName = "Volvo";
  // code ở đây có thể sử dụng biến carName
}

// code ở đây không thể sử dụng biến carName

Biến cục bộ chỉ có thể được truy cập từ bên trong hàm nơi chúng được khai báo.

JavaScript Block Scope 

Biến được khai báo với từ khóa

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
4 không thể có Block Scope.

Biến được khai báo bên trong một block (block là code trong dấu ngoặc nhọn {} ) có thể được truy cập từ bên ngoài block.

Ví dụ:

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây

Trước ES2015 JavaScript không có Block Scope.

Biến được khai báo với từ khóa 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2 có phạm vi Block Scope.

Biến được khai báo bên trong một block {} không thể được truy cập từ bên ngoài block:

Ví dụ:

{
  let x = 2;
}
// x không thể được sử dụng ở đây

Redeclaring (khai báo trùng lặp)

Khai báo lại một biến bên trong một block với từ khóa

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
4 sẽ ảnh hưởng biến đó bên ngoài block:

var x = 10;
// ở đây x là 10
{
  var x = 2;
  // ở đây x là 2
}
// ở đây x là 2

Khai báo lại một biến bên trong một block với từ khóa

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2 sẽ không ảnh hưởng đến biến đó bên ngoài block:

var x = 10;
// ở đây x là 10
{
  let x = 2;
  // ở đây x là 2
}
// ở đây x vẫn là 10

Loop Scope

Sử dụng 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
4 trong một vòng lặp :

var i = 5;
for (var i = 0; i < 10; i++) {
  // một số câu lệnh 
}
// ở đây i là 10

Sử dụng 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2 trong một vòng lặp :

let i = 5;
for (let i = 0; i < 10; i++) {
  // một số câu lệnh
}
// Ở đây i vẫn là 5

Trong ví dụ sử dụng 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
4, biến i được khai báo lại trong vòng lặp sẽ thay đổi giá trị trước đó của biến i bên ngoài vòng lặp.

Trong ví dụ sử dụng 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2, biến i  được khai báo trong vòng lặp sẽ không thay đổi giá trị trước đó của biến i bên ngoài vòng lặp.

Function Scope

Biến được khai báo với 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
4 và 
{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2 là tương tự nhau khi được khai báo bên trong một hàm.

Cả hai sẽ có Function Scope:

function myFunction() {
  var carName = "Volvo";   // Function Scope
}
function myFunction() {
  let carName = "Volvo";   // Function Scope
}

Global Scope

Biến được khai báo với 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
4 và 
{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2 là tương tự nhau khi được khai báo bên ngoài một block.

Cả hai sẽ có Global Scope:

// code ở đây không thể sử dụng biến carName

function myFunction() {
  var carName = "Volvo";
  // code ở đây có thể sử dụng biến carName
}

// code ở đây không thể sử dụng biến carName
0
// code ở đây không thể sử dụng biến carName

function myFunction() {
  var carName = "Volvo";
  // code ở đây có thể sử dụng biến carName
}

// code ở đây không thể sử dụng biến carName
1

Biến Global trong HTML

Với JavaScript, phạm vi toàn cục là môi trường JavaScript.

Trong HTML, phạm vi toàn cục là đối tượng window.

Biến global được xác định bằng từ khóa 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
4 thuộc về đối tượng window.

Ví dụ:

// code ở đây không thể sử dụng biến carName

function myFunction() {
  var carName = "Volvo";
  // code ở đây có thể sử dụng biến carName
}

// code ở đây không thể sử dụng biến carName
2

Biến global được xác định bằng từ khóa

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2 không thuộc về đối tượng window.

// code ở đây không thể sử dụng biến carName

function myFunction() {
  var carName = "Volvo";
  // code ở đây có thể sử dụng biến carName
}

// code ở đây không thể sử dụng biến carName
3

Redeclaring (khai báo trùng lặp )

Redeclaring một biến JavaScript với 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
4 là được phép ở bất cứ đâu trong chương trình:

// code ở đây không thể sử dụng biến carName

function myFunction() {
  var carName = "Volvo";
  // code ở đây có thể sử dụng biến carName
}

// code ở đây không thể sử dụng biến carName
4

Redeclaring một biến kiểu 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
4 với
{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2, trong cùng phạm vi, hoặc cùng block, là KHÔNG được phép:

// code ở đây không thể sử dụng biến carName

function myFunction() {
  var carName = "Volvo";
  // code ở đây có thể sử dụng biến carName
}

// code ở đây không thể sử dụng biến carName
5

Redeclaring một biến kiểu 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2 với 
{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2, trong cùng phạm vi, hoặc cùng block, là KHÔNG được phép:

// code ở đây không thể sử dụng biến carName

function myFunction() {
  var carName = "Volvo";
  // code ở đây có thể sử dụng biến carName
}

// code ở đây không thể sử dụng biến carName
6

Redeclaring một biến kiểu

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2 với
{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
4, trong cùng phạm vi, hoặc cùng block, là KHÔNG được phép:

// code ở đây không thể sử dụng biến carName

function myFunction() {
  var carName = "Volvo";
  // code ở đây có thể sử dụng biến carName
}

// code ở đây không thể sử dụng biến carName
7

Redeclaring một biến với 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2, trong một phạm vi khác, hoặc một block khác, là được phép:

// code ở đây không thể sử dụng biến carName

function myFunction() {
  var carName = "Volvo";
  // code ở đây có thể sử dụng biến carName
}

// code ở đây không thể sử dụng biến carName
8

Hoisting

Biến kiểu

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
4 sẽ bị hoisting và có thể được khởi tạo bất cứ lúc nào.

Thế nào là hoisting? Hoisting là cách javascript kéo tất cả các khai báo biến lên trên scope hiện tại.

// code ở đây không thể sử dụng biến carName

function myFunction() {
  var carName = "Volvo";
  // code ở đây có thể sử dụng biến carName
}

// code ở đây không thể sử dụng biến carName
9

Sau khi hoisting đoạn code trên được viết lại như sau:

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
0

Biến kiểu

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2 sẽ bị hoisting nhưng không được khởi tạo.

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
1

Lời kết

Trên đây là những kiến thức về biến 

{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
2 và biến 
{
  var x = 2;
}
// x CÓ THỂ được sử dụng ở đây
4 trong Javascript, thông qua bài viết hi vọng các bạn sẽ biết cách khai báo biến một cách hợp lí hơn. 

Cảm ơn các bạn đã đọc bài viết, nếu các bạn thấy hay thì ủng hộ giúp mình, có bất kì ý kiến đóng góp gì thì mong các bạn để lại comment ở dưới để chúng ta cùng thảo luận.

Var là khai báo gì trong Pascal?

VAR là từ khóa của ngôn ngữ lập trình dùng để khai báo biến. Danh sách biến phải tuân thủ theo quy ước đặt tên trong ngôn ngữ Pascal. Kiểu dữ liệu của biến các kiểu dữ liệu trong Pascal, ví dụ như integer, char, string,... Trong đó danh sách biến được cách nhau bởi dấu phẩy.

Var trong C là gì?

Từ khóa var trong C# var là từ khóa hỗ trợ khai báo biến mà không cần kiểu dữ liệu, kiểu dữ liệu sẽ được xác định khi gán giá trị cho biến, lúc đó chương trình sẽ tự ép kiểu cho biến. Những lưu ý khi sử dụng từ khóa var: Bắt buộc phải gán giá trị ngay khi khởi tạo biến và không thể khởi tạo giá trị null cho biến var.

Khai báo biến dùng để làm gì?

Khai báo biến để cấp phát bộ nhớ cho biến và mỗi biến chỉ được khai báo một lần trong chương trình. - Trong Pascal, mọi biến trong chương trình đều cần khai báo tên và kiểu dữ liệu của nó (có ngôn ngữ gọi đó định nghĩa biến).

Cú pháp khai báo biến được trình bày như thế nào?

Cảm ơn.
KHAI BÁO HẰNG. - Hằng là một đại lượng có giá trị không thay đổi trong suốt chương trình. - Cú pháp: CONST < Tên hằng > = < Giá trị >; ... .
KHAI BÁO BIẾN. - Biến là một đại lượng mà giá trị của nó có thể thay đổi trong quá trình thực hiện chương trình. - Cú pháp: VAR < Tên biến >[,< Tên biến 2>,...] : < ... .
ĐỊNH NGHĨA KIỂU..