Tuesday, August 28, 2018

JS: biến và kiểu dữ liệu

- Số có thể chia làm 2 loại là số nguyên (Integer) và số thập phân (Float). Với số thập phân (Float) ta dùng dấu chấm chứ không dùng dấu phẩy và không dùng ký tự trắng để phân cách (ví dụ: 1.5 chứ không phải 1,5).
- Một phép toán số học không hợp lệ sẽ trả về dữ liệu là NaN (Not A Number), tuy nhiên kiểu dữ liệu của NaN là number.
- Ký tự ngoặc đơn hoặc ngoặc kép là ký tự đặc biệt dùng để tạo ra chuỗi, cho nên nếu trong 1 chuỗi có chứa ký tự ngoặc đơn thì chúng ta dùng ngoặc kép để tạo chuỗi và ngược lại. Ví dụ: 
var string1 = "Let's go!";
var string2 = '<a href="#">Link</a>';
Ngoài ra chúng ta có thể thêm ký tự  \  đằng trước để đánh dấu rằng đây là ký tự đặc biệt cần hiển thị (escape character) 
var string3 = 'Let\'s go!';
- Tham khảo các hàm xử lý số có sẵn trong Javascript: http://www.w3schools.com/js/js_number_methods.asp
- Tham khảo các hàm xử lý chuỗi có sẵn trong Javascript: http://www.w3schools.com/jsref/jsref_obj_string.asp
Ví dụ với hàm toUpperCase() có tác dụng biến 1 chuỗi thành viết hoa:
var name = "robin".toUpperCase();
thì giá trị của name sẽ là "ROBIN"
- Khi một biến được khai báo mà chưa gán giá trị, nó sẽ có kiểu là undefined. Trong trường hợp một biến đã có giá trị và chúng ta muốn bỏ giá trị đó đi ta dùng kiểu dữ liệu là null chứ không gán lại thành undefined. Ví dụ:
x = null;

- Khi sử dụng typeof với 1 array chúng ta sẽ nhận được kết quả là "object" do array cũng là 1 object trong Javascript. Để kiểm tra 1 biến có phải là array hay không chúng ta sử dụng phương thức isArray() của đối tượng dựng sẵn Array như sau
var arr = [1, 2, 3];
var obj = { name: "Huy" };
var x = Array.isArray(arr);
var y = Array.isArray(obj);
Kết quả trả về sẽ là kiểu boolean: x = true và y = false;
- Array và Object là 2 kiểu dữ liệu đặc biệt, nó có thuộc tính tham chiếu nên sẽ không thể sao chép như biến thông thường. Ví dụ, với các kiểu dữ liệu như number, string, boolean  ta có thể sao chép biến như sau:
var x = 1;
var y = x;   // y copy giá trị của x nên y có giá trị bằng 1
x = 2;   // thay đổi giá trị của x thì y vẫn có giá trị bằng 1
nhưng đối với 1 array hoặc object thì do chúng là đối tượng và khi dùng phép gán thì các biến đều tham chiếu đến cùng 1 đối tượng nên sẽ không thể copy bằng phép gán:
var a = [1,2,3];
var b = a;   // b tham chiếu đến a
a[0] = 10;   // thay đổi giá trị a[0], do cả 2 biến đều tham chiếu đến 1 mảng nên có giá trị giống nhau là [10,2,3]. Do đó b[0] có giá trị bằng 10
b[1] = 11;   // thay đổi giá trị b[1] thì cả 2 biến vẫn có giá trị giống nhau là [10,11,3]
- Để copy 1 array ta có thể dùng cách sau:
var x = [1,2,3];
var y = x.slice();
- Với Object, chúng ta có thể khai báo theo kiểu function tương tự như Class ở các ngôn ngữ khác để có thể tái sử dụng các thuộc tính và phương thức. Ví dụ như sau: 
function person(name, age, gender) {
    this.name = name;
    this.age = age;
    this.gender = gender;
}

var personA = new person('Ford Happy', 16, 'Male');
var personB = new person('Lora Romey', 10, 'Female');

- Trong khi trao đổi dữ liệu giữa các ngôn ngữ khác nhau, người ta thường sử dụng 1 kiểu dữ liệu gọi là JSON (JavaScript Object Notation) dựa trên object trong Javascript. Các bạn có thể tham khao chi tiết hơn tại đây http://www.json.org/

Để hiển thị các nội dụng của mảng:
for(var i =0; i < arr.length; i++){
document.write(arr[i]);
}
for(i in a){
document.write(arr[i]);

Để hiển thị các nôi dung của object
for (var p in obj){
document.write(p);
document.write(obj[p]);
}
2=='2' sẽ trả về true
2==='2' sẽ trả về false

Một chuỗi mà không có dấu ' hoặc " => sẽ bị trình duyệt coi là 1 biến

No comments:

Post a Comment