Friday, October 2, 2020

Các loại dữ liệu JavaScript

Tóm tắt : trong hướng dẫn này, bạn sẽ tìm hiểu về các kiểu dữ liệu JavaScript và các đặc điểm độc đáo của chúng.

Trong javascript có 2 loại kiểu dữ liệu như sau

Kiểu dữ liệu nguyên thủy: Primitive Data

  • null
  • undefined
  • boolean
  • number
  • string
  • symbol có trong ES6

Kiểu dữ liệu phúc tạp:Complex data

  • object
  • function

JavaScript là một ngôn ngữ động hoặc được gõ lỏng lẻo, do đó một biến không liên kết với bất kỳ loại nào. Tuy nhiên, giá trị của nó không.

Nói cách khác, cùng một biến có thể giữ các giá trị thuộc các kiểu khác nhau bất kỳ lúc nào. Ví dụ:

let counter = 120; // counter is a number

counter = false;   // counter is now a boolean

counter = "foo";   // counter is now a string

Để nhận loại giá trị hiện tại của một biến, bạn sử dụng  typeof toán tử:

let counter = 120; // counter is a number

console.log(typeof(counter)); // "number"

counter = false;   // counter is now a boolean

console.log(typeof(counter)); // "boolean"

counter = "Hi";   // counter is now a string

console.log(typeof(counter)); // "string"

Đầu ra:

"number"

"boolean"

"string"

Kiểu dữ liệu undefined

Các undefined type là một kiểu nguyên thủy có một giá trị undefined.

Các loại dữ liệu JavaScript

Theo mặc định, khi một biến được khai báo nhưng không được khởi tạo, nó sẽ được gán giá trị undefined.

Hãy xem xét ví dụ sau:

let counter;

console.log(counter);        // undefined

console.log(typeof counter); // undefined

Trong ví dụ này, counterlà một biến. Vì counterchưa được khởi tạo nên nó được gán giá trị undefined. Loại của countercũng là undefined.

Điều quan trọng cần lưu ý là   typeoftoán tử cũng trả về undefinedkhi bạn gọi nó trên một biến chưa được khai báo:

console.log(typeof undeclaredVar); // undefined

Kiểu dữ liệu Null

Các nullloại là lần thứ hai kiểu dữ liệu cơ bản mà cũng chỉ có một giá trị: null. 

Javascript định nghĩa đó nulllà một con trỏ đối tượng rỗng. Xem ví dụ sau:

let obj = null;

console.log(typeof obj); // object

Một phương pháp hay là gán một biến mà sau này giữ một đối tượng để nullbạn có thể kiểm tra xem đối tượng đó có phải là đối tượng nullhay không bằng cách sử dụng câu lệnh if như sau:

if(obj != null) {

   // call method of the object

}

JavaScript định nghĩa giá trị nullbằng undefinednhư được hiển thị trong câu lệnh sau.

Kiểu dữ liệu number

JavaScript sử dụng định dạng IEEE-754 để biểu diễn cả số nguyên và số dấu phẩy động.

Số nguyên

Câu lệnh sau đây khai báo một biến chứa một số nguyên.

let num = 100;

Nếu bạn muốn biểu diễn các chữ số bát phân (cơ số 8), bạn đặt chữ số đầu tiên là số không (0) theo sau là các số chữ số bát phân (0 đến 7) như sau:

let oct = 060; // octal for 48

Nếu chữ của một số bát phân nằm ngoài phạm vi, JavaScript sẽ coi nó như một số thập phân như được hiển thị trong ví dụ sau.

let d = 090; // intepreted as 90

Để tránh nhầm lẫn, ES6 cho phép bạn chỉ định một ký tự bát phân bằng cách sử dụng tiền tố 0otheo sau là một chuỗi các chữ số bát phân từ 0 đến 7:

let v = 0o45;

console.log(v); // 37

Để tạo các ký tự thập lục phân (cơ số 16), bạn sử dụng 0x(ở dạng chữ thường) làm hai ký tự đầu tiên, theo sau là bất kỳ số chữ số thập lục phân nào (0 đến 9 và A đến F).

let h = 0xf; // same as 0xF hexadecimal for 15

Số dấu phẩy động

Để biểu diễn một số dấu phẩy động, bạn bao gồm một dấu chấm thập phân theo sau là ít nhất một số. Ví dụ:

let f1 = 12.5; 

let f2 = .3;   // same as 0.3, also valid but not recommended

JavaScript chuyển đổi một số dấu phẩy động thành một số nguyên nếu số có vẻ là số nguyên.

Lý do là Javascript luôn muốn sử dụng ít bộ nhớ hơn vì một giá trị dấu phẩy động sử dụng gấp đôi bộ nhớ so với một giá trị số nguyên.

let f3 = 200.00; // interpreted as integer 200

JavaScript cho phép bạn sử dụng ký hiệu điện tử để biểu diễn các số rất lớn hoặc nhỏ như trong ví dụ sau.

let f4 = 2.17e6; // ~ 2170000

JavaScript cung cấp các giá trị tối thiểu và tối đa của một số mà bạn có thể truy cập bằng cách sử dụng Number.MIN_VALUEvà Number.MAX_VALUE.

Ngoài ra, JavaScript sử dụng Infinityvà -Infinityđể biểu diễn các số hữu hạn, cả số dương và số âm.

Xem ví dụ sau:

console.log(Number.MAX_VALUE); // 1.7976931348623157e+308

console.log(Number.MIN_VALUE); // 5e-324

console.log(Number.MAX_VALUE + Number.MAX_VALUE); // Infinity

console.log(-Number.MAX_VALUE - Number.MAX_VALUE); // -Infinity

NaN

JavaScript có một giá trị số đặc biệt được gọi là NaN, viết tắt của N ot a N umber. Trên thực tế, nó có nghĩa là một số không hợp lệ.

Ví dụ, phép chia một chuỗi cho một số trả về NaNnhư trong ví dụ sau.

console.log('a'/2); // NaN;

Có NaN hai đặc điểm đặc biệt:

Bất kỳ hoạt động nào có NaN lợi nhuận NaN.

Các NaNkhông bằng bất kỳ giá trị, bao gồm cả bản thân.

Dưới đây là một số ví dụ:

console.log(NaN/2); // NaN

console.log(NaN == NaN); // false

console.log(null == undefined); // true

Kiểu dữ liệu String

Trong JavaScript, một chuỗi là một chuỗi không hoặc nhiều ký tự. Một chuỗi chữ bắt đầu và kết thúc bằng dấu nháy đơn (') hoặc dấu nháy kép (“).

Chuỗi bắt đầu bằng dấu ngoặc kép phải kết thúc bằng dấu ngoặc kép và chuỗi bắt đầu bằng dấu nháy đơn phải kết thúc bằng dấu nháy đơn.

Dưới đây là một số ví dụ:

let greeting = 'Hi';

let s = "It's a valid string";

let str = 'I\'m also a string'; // use \ to escape the single quote (')

Các chuỗi JavaScript là bất biến. Nó có nghĩa là bạn không thể sửa đổi một chuỗi sau khi nó được tạo.

Tuy nhiên, bạn có thể tạo một chuỗi mới dựa trên một thao tác trên chuỗi gốc, như sau:

let str = 'JavaScript';

str = str + ' String';

Trong ví dụ này:

Đầu tiên, khai báo strbiến và khởi tạo nó thành một chuỗi 'JavaScript'.

Thứ hai, sử dụng +toán tử để kết hợp 'JavaScript'với ' String'để làm cho giá trị của nó là 'Javascript String'.

Phía sau, công cụ JavaScript tạo một chuỗi mới chứa chuỗi mới 'JavaScript String'và hủy hai chuỗi gốc khác 'JavaScript'và ' String'.

Kiểu dữ liệu Boolean

Các booleanloại có hai giá trị: truevà false, bằng chữ thường.

Ví dụ sau khai báo hai biến giữ giá trị boolean.

let inProgress = true;

let completed = false;

console.log(typeof done); // boolean

JavaScript cho phép các giá trị của các loại khác được chuyển đổi thành các giá trị boolean của truehoặc false.

Để chuyển đổi giá trị của kiểu dữ liệu khác thành giá trị boolean, bạn sử dụng Booleanhàm. Bảng sau đây hiển thị các quy tắc chuyển đổi:

Kiểu dữ liệu symbol

JavaScript đã thêm một kiểu nguyên thủy trong ES6: the symbol. Khác với các kiểu nguyên thủy khác, symbolkiểu không có dạng chữ.

Để tạo một biểu tượng, bạn gọi Symbolhàm như sau:

let s1 = Symbol();

Lưu ý rằng đó Symbollà một hàm, không phải là một phương thức tạo đối tượng, do đó, bạn không thể sử dụng newtoán tử. Nếu bạn làm như vậy, bạn sẽ nhận được một TypeError.

Các Symbolchức năng tạo ra một giá trị duy nhất mới mỗi khi bạn gọi nó.

console.log(Symbol() == Symbol()); // false

Bạn có thể chuyển một chuỗi mô tả vào Symbolhàm cho mục đích ghi nhật ký và gỡ lỗi.

let s2 = Symbol('event.save');

Khi bạn gọi toString()phương thức trên biến biểu tượng, nó sẽ trả về một tên mô tả hơn như được hiển thị bên dưới:

console.log(s2.toString()); // Symbol(event.save)

Bạn có thể sử dụng các biểu tượng cho nhiều mục đích. Một trong số đó là tạo một hằng số giống như chuỗi không thể xung đột với bất kỳ giá trị nào khác.

Ví dụ sau đây tạo một biểu tượng đại diện cho clicksự kiện.

const click = Symbol('click');

Chuỗi 'click'có thể được sử dụng cho các mục đích khác nhau và không phải là duy nhất. Tuy nhiên, clickbiểu tượng là hoàn toàn độc đáo.

Kiểu dữ liệu object

Trong JavaScript, một đối tượng là một tập hợp các  thuộc tính , trong đó mỗi thuộc tính được định nghĩa là một cặp khóa-giá trị.

Ví dụ sau đây xác định một đối tượng rỗng bằng cách sử dụng biểu mẫu đối tượng:

let emptyObject = {};

Ví dụ sau định nghĩa personđối tượng với hai thuộc tính:

let person = {

    firstName: 'John',

    lastName: 'Doe'

};

Tên thuộc tính của một đối tượng có thể bởi bất kỳ chuỗi nào. Bạn có thể sử dụng dấu ngoặc kép xung quanh tên thuộc tính nếu nó không phải là mã định danh JavaScript hợp lệ .

Ví dụ: nếu bạn có một thuộc tính first-name, bạn phải sử dụng các dấu ngoặc kép chẳng hạn như "first-name" nhưng firstNamelà một mã định danh JavaScript hợp lệ nên các dấu ngoặc kép là tùy chọn.

Nếu bạn có nhiều thuộc tính, bạn sử dụng dấu phẩy ( ,) để phân tách các cặp.

JavaScript cho phép bạn lồng đối tượng như được hiển thị trong ví dụ sau:

let contact = {

    firstName: 'John',

    lastName: 'Doe',

    email: 'john.doe@example.com',

    phone: '(408)-555-9999',

    address: {

        building: '4000',

        street: 'North 1st street',

        city: 'San Jose',

        state: 'CA',

        country: 'USA'

    }

}

Các contac đối tượng bao gồm  firstName, lastName, email, phone, và addresstài sản.

Các addresstài sản riêng của mình cũng là một đối tượng mà bao gồm building,   street, city, state, và countrytài sản.

Bạn có thể truy cập các thuộc tính của một đối tượng bằng cách sử dụng hai ký hiệu: ký hiệu dấu chấm (.) Và ký hiệu dạng mảng ( []).

Ví dụ sau sử dụng ký hiệu dấu chấm ( .) để truy cập các thuộc tính firstName và  lastNamecủa contactđối tượng.

console.log(contact.firstName);

console.log(contact.lastName);

Để lấy thuộc tính của một đối tượng lồng nhau, bạn sử dụng biểu mẫu sau:

console.log(contact.address.country);

Nếu bạn tham chiếu đến một thuộc tính không tồn tại, bạn sẽ nhận được một undefinedgiá trị như sau:

console.log(contact.age); // undefined

Ví dụ sau sử dụng ký hiệu dạng mảng để truy cập các thuộc tính email và phonecủa contactđối tượng.

console.log(contact['phone']); // '(408)-555-9999'

console.log(contact['email']); // 'john.doe@example.com'

Bên cạnh dạng chữ đối tượng, bạn có thể sử dụng newtừ khóa để tạo một đối tượng mới như sau

let customer = new Object();

Và gán thuộc tính của đối tượng một giá trị:

customer.name = 'ABC Inc.';

Trong JavaScript, tất cả các đối tượng đều có nguồn gốc từ Objectkiểu. Chúng ta sẽ thảo luận thêm về Objectloại này trong hướng dẫn tiếp theo.

Kiểu dữ liệu Array

Trong javascript kiểu dữ liệu array sẽ biểu thị như sau

let arrayCouse = ["PHP","java","Angular"];

Kiểu dữ liệu function

kiểu dữ liệu function trong javascript là kiểu dữ liệu phức tạp nó sẽ thực hiện như một hàm

var myFunction = function (){

    console.log("chay hàm");

}

để chạy được hàm trong javascript bạn cần phải gọi lại nó

myFunction();

No comments:

Post a Comment