2.1 Biến và đau

Hãy bắt đầu với điều thú vị nhất. JavaScript có các biến, nhưng các biến đó không có loại. Bất kỳ biến nào cũng có thể được gán hoàn toàn bất kỳ giá trị nào. Có vẻ vô hại hoặc thậm chí tiện dụng cho đến khi bạn cần các loại.

Từ khóa được sử dụng để khai báo một biến var:

var name;
var name = value;

Ví dụ về cách làm việc với các biến trong JavaScript:

var a = 10, b = 20;
var c = a*a + b*b;

var s = "Diagonal equals:";
console.log( s + Math.sqrt(c));

Mã tuyệt vời và rõ ràng, phải không? Có lẽ đây là lần cuối cùng trong đời bạn nhìn thấy mã JavaScript đẹp và dễ hiểu. Ghi nhớ khoảnh khắc này :)

2.2 Nhập bằng JavaScript

Như đã đề cập ở trên, biến trong ngôn ngữ JavaScript không có kiểu. Nhưng giá trị của các biến có các loại. Dưới đây là 5 loại phổ biến nhất trong JavaScript:

# Kiểu Ví dụ Sự miêu tả
1 con số
var pi = 3.14;
Chứa bất kỳ số nào
2 Sợi dây
var s = "Hello!";
Chứa một chuỗi
3 Boolean
var result = true;
Chứa đúng hoặc sai
4 mảng
var arr = [1, 2, 3, 4, 5];
Chứa một mảng các phần tử
5 Ngày
var current = new Date();
Chứa ngày
6 Sự vật
var o = {
   width: 100,
   height: 200
}
Chứa một đối tượng bao gồm các cặp khóa, giá trị. Một cái gì đó tương tự như HashMap trong Java
7 chức năng
function sqr(var x) {
   return x*x;
}
Chức năng

Từ khóa typeof được sử dụng để xác định loại đối tượng, ví dụ:

var s = "134";
var x = (typeof s == "String") ? s*1 : s;

2.3 Hàm và trả về

Và tất nhiên JavaScript có chức năng. Không có lớp, vì vậy các chức năng có thể được khai báo ở bất kỳ đâu trong mã. Ngay cả trong các chức năng khác. Định dạng chung là:

function name(a, b, c) {
  // function code
   return result;
}

Hàm không có kiểu. Tại sao, nếu không có kiểm soát tương thích loại trong chính ngôn ngữ đó? Các tham số chức năng cũng có thể bị thiếu. Lệnh return cũng vậy, nó trả về một giá trị.

Khi gọi một hàm, bạn có thể truyền bất kỳ số lượng tham số thuộc bất kỳ loại nào . Cái nào thừa thì bỏ đi, cái nào thiếu thì bổ sung bằng nhau null.

Ví dụ về chức năng:

function getValue(name)
{
    return this[name];
}
function setValue(name, value)
{
    this[name] = value;
}

2.4 Mảng trong JavaScript

Mảng trong JavaScript rất giống với mảng trong Java. Ví dụ:

var array = [1, 2, 3, 4, 5];
array[3] = array[2];
console.log (array[0]);

Chúng có thể có các giá trị thuộc bất kỳ loại nào, thậm chí là các mảng khác:

var array = [1, "Hello", 3.14, [4, 5] ];
array[3] = array[2];
console.log (array[0]);

Ngoài ra, các mảng cũng hoạt động giống như các tập hợp - bạn có thể tự động thêm các phần tử vào chúng:

var array = [];
array.push(100);
array.push(101);
array.push(102);

array[1] = array[2];
console.log (array[0]);

2.5 Đối tượng trong JavaScript

Các đối tượng trong JavaScript rất giống với HashMap trong Java: chúng chứa các cặp khóa-giá trị. Ví dụ:

var obj = {
 name: "Bill Gates",
 age: 67,
 company: "Microsoft"
};

console.log (obj.age);

Các trường đối tượng có thể được truy cập theo hai cách khác nhau:

var x = obj.age;
var x = obj["age"];

Như với HashMap, các trường có thể được tạo và xóa. Ví dụ:

var obj = {};
obj.name = "Bill Gates";
obj.age = 67;
obj.company = "Microsoft";

delete obj.age;  //remove field