Tiếp theo Thế giới JS sẽ tìm hiểu chi tiết về kiểu dữ liệu trong JavaScript, nhằm giúp ae dev code dễ dàng hơn.
Chủ yếu có hai loại ngôn ngữ. Đầu tiên, một là ngôn ngữ được nhập tĩnh trong đó từng biến và loại biểu thức đã được biết tại thời điểm biên dịch. Khi một biến được khai báo thuộc một kiểu dữ liệu nhất định, nó không thể chứa các giá trị của các kiểu dữ liệu khác.
Ví dụ: C, C++, Java.
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs // Java(Statically typed) int x = 88 // variable x is of type int and it will not store any other type. string y = 'xyzk' // type string and will only accept string values
Ngoài ra, Ngôn ngữ được kiểu động : Những ngôn ngữ này có thể nhận các loại dữ liệu khác nhau theo thời gian. Ví dụ- Ruby, Python, JavaScript, v.v.
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs // Javascript(Dynamically typed) var x = 66; // can store an integer var name = 'string'; // can also store a string.
JavaScript là một ngôn ngữ kịch bản được import động (còn gọi là kiểu lỏng lẻo). Nghĩa là, trong JavaScript, các biến có thể nhận các loại dữ liệu khác nhau theo thời gian. Kiểu dữ liệu về cơ bản là dữ liệu được nhập có thể được sử dụng và thao tác trong một chương trình.
Tiêu chuẩn ECMAScript(ES6) mới nhất xác định các loại dữ liệu sau : Trong đó có sáu loại dữ liệu là Nguyên thủy (được xác định trước).
- Số : Đại diện cho cả số nguyên và số dấu phẩy động. Ví dụ: 5, 6.5, 7, v.v.
- Chuỗi : Chuỗi là một dãy các ký tự. Trong JavaScript, các chuỗi có thể được đặt trong dấu nháy đơn hoặc kép. Ví dụ: “Xin chào Wikicode”, v.v.
- Boolean : Đại diện cho một thực thể logic và có thể có hai giá trị: đúng hoặc sai.
- Null : Loại này chỉ có một giá trị duy nhất là null.
- Undefined – Không xác định : Một biến chưa được gán giá trị là không xác định.
- Ký hiệu – Symbol : Không giống như các kiểu dữ liệu nguyên thủy khác, nó không có bất kỳ dạng chữ nào. Nó là một đối tượng tích hợp sẵn mà hàm tạo của nó trả về một biểu tượng-là duy nhất.
- bigint: Loại bigint đại diện cho toàn bộ số lớn hơn 2 53 -1 . Để tạo thành một số bigint bằng chữ, bạn thêm chữ n vào cuối số.
- Đối tượng – Object: Đây là loại dữ liệu quan trọng nhất và tạo thành các khối xây dựng cho JavaScript hiện đại. Chúng ta sẽ tìm hiểu chi tiết về các kiểu dữ liệu này trong các bài viết tiếp theo.
1.Các biến trong JavaScript:
Các biến trong JavaScript là các thùng chứa dữ liệu có thể tái sử dụng. Nó là đơn vị lưu trữ cơ bản trong một chương trình.
- Giá trị được lưu trữ trong một biến có thể được thay đổi trong quá trình thực hiện chương trình.
- Một biến chỉ là một tên được đặt cho một vị trí bộ nhớ, tất cả các thao tác được thực hiện trên biến đó sẽ ảnh hưởng đến vị trí bộ nhớ đó.
- Trong JavaScript, tất cả các biến phải được khai báo trước khi chúng có thể được sử dụng.
Trước ES2015 , các biến JavaScript chỉ được khai báo bằng cách sử dụng từ khóa var theo sau là tên của biến và dấu chấm phẩy. Dưới đây là cú pháp tạo biến trong JavaScript:
var var_name; Const x;
Var_name là tên của biến do người dùng xác định và phải là duy nhất. Những loại tên này còn được gọi là định danh . Các quy tắc để tạo mã định danh trong JavaScript là, tên của mã định danh không được là bất kỳ từ nào được xác định trước (được gọi là từ khóa), ký tự đầu tiên phải là một chữ cái, dấu gạch dưới (_) hoặc ký hiệu đô la ($) . Các ký tự tiếp theo có thể là bất kỳ chữ cái hoặc chữ số hoặc dấu gạch dưới hoặc ký hiệu đô la.
Lưu ý trong mẫu code trên, chúng tôi đã không gán bất kỳ giá trị nào cho các biến. Chúng tôi chỉ nói rằng chúng tồn tại. Nếu bạn nhìn vào giá trị của từng biến trong mẫu code trên, nó sẽ không được xác định.
Chúng ta có thể khởi tạo các biến tại thời điểm khai báo hoặc sau này khi chúng ta muốn sử dụng chúng. Dưới đây là một số ví dụ về khai báo và khởi tạo biến trong JavaScript:
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs // Declaring single variable var name; // Declaring multiple variables var name, title, num; // Initializing variables var name = "vpsus"; name = "vps";
JavaScript còn được gọi là ngôn ngữ không định kiểu. Điều này có nghĩa là khi một biến được tạo trong JavaScript bằng từ khóa var, chúng ta có thể lưu trữ bất kỳ loại giá trị nào trong biến được JavaScript hỗ trợ này. Dưới đây là ví dụ cho việc này:
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs // Creating variable to store a number var num = 5; // Store string in the variable num num = "vps";
Ví dụ trên thực thi tốt mà không có bất kỳ lỗi nào trong JavaScript, không giống như các ngôn ngữ lập trình khác.
Các biến trong JavaScript cũng có thể đánh giá các biểu thức toán học đơn giản và nhận giá trị của chúng.
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs // Storing a mathematical expression var x = 5 + 10 + 1; console.log(x); // 16
Sau ES2015 , bây giờ chúng ta có hai vùng chứa biến mới: let và const. Bây giờ chúng ta sẽ xem xét từng cái một. Loại biến Let chia sẻ nhiều điểm tương đồng với var nhưng không giống như var, nó có các ràng buộc về phạm vi. Để biết thêm về họ, hãy truy cập let vs var . Hãy sử dụng biến let:
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs // let variable let x; // undefined let name = 'WikiCode'; // Can also declare multiple values let a=1,b=2,c=3; // Assignment let a = 3; a = 4; // works same as var.
Const là một loại biến khác được gán cho dữ liệu có giá trị không thể và sẽ không thay đổi trong suốt tập lệnh.
// const variable const name = 'vpsus'; name = 'vpsdev'; // will give Assignment to constant variable error.
2.Phạm vi biến trong Javascript
Phạm vi của một biến là một phần của chương trình mà từ đó biến có thể được truy cập trực tiếp.
Trong JavaScript, có hai loại phạm vi:
- Global Scope – Scope bên ngoài hàm ngoài cùng gắn liền với Window.
- Phạm vi cục bộ – Bên trong hàm đang được thực thi.
Hãy xem đoạn code dưới đây. Chúng tôi có một biến toàn cầu được xác định trong dòng đầu tiên trong phạm vi toàn cầu. Sau đó, chúng ta có một biến cục bộ được định nghĩa bên trong hàm fun().
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs let globalVar = "This is a global variable"; function fun() { let localVar = "This is a local variable"; console.log(globalVar); console.log(localVar); } fun();
Đầu ra:
![](https://vpsus.vn/wp-content/uploads/2023/06/js_console_bien-1024x242-1.png)
Khi chúng ta thực thi hàm fun(), đầu ra cho thấy rằng cả biến toàn cục và biến cục bộ đều có thể truy cập được bên trong hàm vì chúng ta có thể console.log chúng. Điều này cho thấy bên trong hàm chúng ta có quyền truy cập vào cả biến toàn cục (khai báo bên ngoài hàm) và biến cục bộ (khai báo bên trong hàm). Hãy di chuyển các câu lệnh console.log ra ngoài hàm và đặt chúng ngay sau khi gọi hàm.
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs <scipt> let globalVar = "This is a global variable"; function fun() { let localVar = "This is a local variable"; } fun(); console.log(globalVar); console.log(localVar); </script>
Đầu ra:
![](https://vpsus.vn/wp-content/uploads/2023/06/js_console_loi-1024x219-1.png)
Chúng ta vẫn có thể thấy giá trị của biến toàn cục, nhưng đối với biến cục bộ, console.log sẽ báo lỗi. Điều này là do bây giờ các câu lệnh console.log hiện có trong phạm vi toàn cầu nơi chúng có quyền truy cập vào các biến toàn cục nhưng không thể truy cập các biến cục bộ.
Ngoài ra, bất kỳ biến nào được xác định trong một hàm có cùng tên với biến toàn cục sẽ được ưu tiên hơn biến toàn cục, che khuất biến đó. Để hiểu chi tiết về phạm vi biến trong JavaScript, vui lòng tham khảo bài viết tìm hiểu về phạm vi biến trong Javascript tại các bài tiếp theo.
Tiếp theo, hãy cùng Thế giới JS tìm hiểu thêm các kiến thức về Javascript trong các bài tiếp theo trong series học miễn phí Javascript từ cơ bản tới nâng cao.
Nếu bạn cảm thấy hữu ích và yêu thích Thế giới JS, hãy tham gia và theo dõi chúng tôi để nhận thêm nhiều kiến thức MIỄN PHÍ hơn nữa nhé:
Share to learn more than!