Hướng dẫn JS

JS TRANG CHỦ Giới thiệu JS JS Đến đâu Đầu ra JS Tuyên bố JS Cú pháp JS Bình luận JS Biến JS JS Hãy JS Const Toán tử JS Số học JS Chuyển nhượng JS Các loại dữ liệu JS Các hàm JS Đối tượng JS Sự kiện JS Chuỗi JS Phương thức chuỗi JS Tìm kiếm chuỗi JS Mẫu chuỗi JS Số JS Phương thức số JS Mảng JS Phương thức mảng JS Sắp xếp mảng JS Lặp lại mảng JS JS Array Const JS ngày Định dạng ngày JS Ngày lấy phương thức JS Phương pháp đặt ngày JS Toán JS JS ngẫu nhiên JS Booleans So sánh JS Điều kiện JS Chuyển đổi JS JS Loop cho JS Loop For In JS Loop For Of JS lặp trong khi JS Break JS lặp lại Bộ JS Bản đồ JS JS Typeof Chuyển đổi loại JS JS Bitwise JS RegExp Lỗi JS Phạm vi JS JS Hoists Chế độ nghiêm ngặt JS JS từ khóa này Hàm mũi tên JS Lớp JS JS JSON Gỡ lỗi JS Hướng dẫn kiểu JS Các phương pháp hay nhất về JS JS sai lầm Hiệu suất JS JS dành riêng từ

Phiên bản JS

Phiên bản JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge Lịch sử JS

Đối tượng JS

Định nghĩa đối tượng Thuộc tính đối tượng Phương thức đối tượng Hiển thị đối tượng Người truy cập đối tượng Trình tạo đối tượng Nguyên mẫu đối tượng Đối tượng lặp lại Bộ đối tượng Bản đồ đối tượng Tham chiếu đối tượng

Các hàm JS

Định nghĩa hàm Tham số chức năng Lời mời hàm Gọi hàm Áp dụng chức năng Chức năng đóng cửa

Lớp JS

Giới thiệu Lớp học Kế thừa giai cấp Lớp tĩnh

JS Async

Gọi lại JS JS không đồng bộ JS hứa JS Async / Await

JS HTML DOM

Giới thiệu DOM Phương thức DOM Tài liệu DOM Phần tử DOM DOM HTML Các biểu mẫu DOM DOM CSS Hoạt ảnh DOM Sự kiện DOM Trình xử lý sự kiện DOM Điều hướng DOM Nút DOM Bộ sưu tập DOM Danh sách nút DOM

BOM trình duyệt JS

Cửa sổ JS Màn hình JS Vị trí JS Lịch sử JS JS Navigator JS Popup Alert Thời gian JS JS Cookies

API web JS

Giới thiệu API Web API biểu mẫu web API lịch sử web API lưu trữ web API công nhân web API tìm nạp web API vị trí địa lý web

JS AJAX

Giới thiệu về AJAX AJAX XMLHttp Yêu cầu AJAX Phản hồi AJAX Tệp XML AJAX AJAX PHP AJAX ASP Cơ sở dữ liệu AJAX Ứng dụng AJAX Ví dụ về AJAX

JS JSON

Giới thiệu JSON Cú pháp JSON JSON so với XML Các loại dữ liệu JSON Phân tích cú pháp JSON JSON Stringify Đối tượng JSON Mảng JSON Máy chủ JSON JSON PHP HTML JSON JSON JSONP

JS so với jQuery

Bộ chọn jQuery jQuery HTML jQuery CSS jQuery DOM

Đồ họa JS

Đồ họa JS JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

Ví dụ về JS

Ví dụ về JS JS HTML DOM Đầu vào HTML JS Đối tượng HTML JS Sự kiện HTML JS Trình duyệt JS Trình chỉnh sửa JS Bài tập JS JS Quiz Chứng chỉ JS

Tham khảo JS

Đối tượng JavaScript Đối tượng DOM HTML


JavaScript typeof


Trong JavaScript, có 5 kiểu dữ liệu khác nhau có thể chứa các giá trị:

  • string
  • number
  • boolean
  • object
  • function

Có 6 loại đối tượng:

  • Object
  • Date
  • Array
  • String
  • Number
  • Boolean

Và 2 kiểu dữ liệu không thể chứa giá trị:

  • null
  • undefined

Loại toán tử

Bạn có thể sử dụng typeoftoán tử để tìm kiểu dữ liệu của một biến JavaScript.

Thí dụ

typeof "John"                 // Returns "string"
typeof 3.14                   // Returns "number"
typeof NaN                    // Returns "number"
typeof false                  // Returns "boolean"
typeof [1,2,3,4]              // Returns "object"
typeof {name:'John', age:34}  // Returns "object"
typeof new Date()             // Returns "object"
typeof function () {}         // Returns "function"
typeof myCar                  // Returns "undefined" *
typeof null                   // Returns "object"

Hãy quan sát:

  • Kiểu dữ liệu của NaN là số
  • Kiểu dữ liệu của một mảng là đối tượng
  • Kiểu dữ liệu của một ngày là đối tượng
  • Kiểu dữ liệu của null là đối tượng
  • Kiểu dữ liệu của một biến không xác định là không xác định *
  • Kiểu dữ liệu của một biến chưa được gán giá trị cũng không được xác định *

Bạn không thể sử dụng typeofđể xác định xem một đối tượng JavaScript là một mảng (hay một ngày tháng).



Dữ liệu nguyên thủy

Giá trị dữ liệu nguyên thủy là một giá trị dữ liệu đơn giản không có thuộc tính và phương thức bổ sung.

Toán tử typeofcó thể trả về một trong các kiểu nguyên thủy sau:

  • string
  • number
  • boolean
  • undefined

Thí dụ

typeof "John"              // Returns "string"
typeof 3.14                // Returns "number"
typeof true                // Returns "boolean"
typeof false               // Returns "boolean"
typeof x                   // Returns "undefined" (if x has no value)

Dữ liệu phức tạp

Toán tử typeofcó thể trả về một trong hai kiểu phức tạp:

  • function
  • object

Toán tử typeoftrả về "đối tượng" cho các đối tượng, mảng và null.

Toán tử typeofkhông trả về "đối tượng" cho các hàm.

Thí dụ

typeof {name:'John', age:34} // Returns "object"
typeof [1,2,3,4]             // Returns "object" (not "array", see note below)
typeof null                  // Returns "object"
typeof function myFunc(){}   // Returns "function"

Toán tử typeoftrả về " object" cho các mảng vì trong JavaScript, các mảng là các đối tượng.


Kiểu dữ liệu của typeof

Toán tử typeofkhông phải là một biến. Nó là một nhà điều hành. Các toán tử (+ - * /) không có bất kỳ kiểu dữ liệu nào.

Tuy nhiên, typeoftoán tử luôn trả về một chuỗi (chứa kiểu của toán hạng).


Thuộc tính phương thức khởi tạo

Thuộc constructortính trả về hàm tạo cho tất cả các biến JavaScript.

Thí dụ

"John".constructor                // Returns function String()  {[native code]}
(3.14).constructor                // Returns function Number()  {[native code]}
false.constructor                 // Returns function Boolean() {[native code]}
[1,2,3,4].constructor             // Returns function Array()   {[native code]}
{name:'John',age:34}.constructor  // Returns function Object()  {[native code]}
new Date().constructor            // Returns function Date()    {[native code]}
function () {}.constructor        // Returns function Function(){[native code]}

Bạn có thể kiểm tra thuộc tính phương thức khởi tạo để tìm xem một đối tượng có phải là một Array (chứa từ "Array") hay không:

Thí dụ

function isArray(myArray) {
  return myArray.constructor.toString().indexOf("Array") > -1;
}

Hoặc đơn giản hơn, bạn có thể kiểm tra xem đối tượng có phải là một hàm Array hay không :

Thí dụ

function isArray(myArray) {
  return myArray.constructor === Array;
}

Bạn có thể kiểm tra thuộc tính phương thức khởi tạo để tìm xem một đối tượng có phải là một Date(có chứa từ "Ngày") hay không:

Thí dụ

function isDate(myDate) {
  return myDate.constructor.toString().indexOf("Date") > -1;
}

Hoặc đơn giản hơn, bạn có thể kiểm tra xem đối tượng có phải là hàm Date hay không :

Thí dụ

function isDate(myDate) {
  return myDate.constructor === Date;
}


Chưa xác định

Trong JavaScript, một biến không có giá trị sẽ có giá trị undefined. Kiểu cũng vậy undefined.

Thí dụ

let car;    // Value is undefined, type is undefined

Bất kỳ biến nào cũng có thể được làm trống bằng cách đặt giá trị thành undefined. Loại cũng sẽ được undefined.

Thí dụ

car = undefined;    // Value is undefined, type is undefined

Giá trị trống

Giá trị trống không liên quan gì undefined.

Một chuỗi rỗng có cả giá trị pháp lý và kiểu.

Thí dụ

let car = "";    // The value is "", the typeof is "string"

Vô giá trị

Trong JavaScript nulllà "không có gì". Nó được cho là một cái gì đó không tồn tại.

Thật không may, trong JavaScript, kiểu dữ liệu của nulllà một đối tượng.

Bạn có thể coi đó là một lỗi trong JavaScript typeof nulllà một đối tượng. Nó nên được null.

Bạn có thể làm trống một đối tượng bằng cách đặt nó thành null:

Thí dụ

let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null;    // Now value is null, but type is still an object

Bạn cũng có thể làm trống một đối tượng bằng cách đặt nó thành undefined:

Thí dụ

let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined;   // Now both value and type is undefined

Sự khác biệt giữa Undefined và Null

undefinednullbằng nhau về giá trị nhưng khác về loại:

typeof undefined           // undefined
typeof null                // object

null === undefined         // false
null == undefined          // true