HomeLập trìnhJavaScriptCách làm việc...

Cách làm việc với số và ngày trong JavaScript


Số, ngày tháng và bộ hẹn giờ là những phần quan trọng của JavaScript. Và bạn sẽ cần biết cách làm việc với chúng khi viết mã của mình.

Chúng tôi thường bỏ qua những chủ đề này vì nhiều bài viết không thảo luận về chúng. Vì vậy, ở đây, chúng ta sẽ đi sâu vào các kỹ thuật bạn có thể sử dụng và tìm hiểu một số điều thú vị mà bạn có thể sử dụng trong dự án tiếp theo của mình.

Cách làm việc với các số trong JS

số là số nguyên đối tượng bao bọc dùng để chuyển đổi kiểu dữ liệu thành số. Đầu tiên, chúng ta sẽ xem cách chuyển đổi một chuỗi thành số bằng cách sử dụng Number đối tượng bao bọc.

let str = "23";
console.log(typeof str); // string

let num = Number(str);
console.log(typeof num); // number

Ví dụ trên cho thấy cách bạn có thể chuyển đổi một chuỗi thành một số.

Có một cách khác bạn có thể thực hiện việc này bằng cách sử dụng kiểu ép buộc. Chúng ta chỉ cần thêm + ký hiệu trước chuỗi sẽ chuyển đổi chuỗi thành một số.

let str = "23";
console.log(typeof str); // string

// reassigning str variable
str = +"23";
console.log(typeof str);  // number

Vì vậy, từ ví dụ trên, chúng ta có thể thấy rằng có hai phương pháp để chuyển đổi một chuỗi thành số. Nhưng chúng tôi thường thích Number() vì nó rõ ràng hơn những gì chúng ta đang làm và nó cũng chính xác hơn.

Cách sử dụng parseInt() và parseFloat()

Chúng tôi có một chức năng parseInt() chỉ có thể phân tích cú pháp các phần nguyên từ chuỗi. Nhưng chuỗi phải bắt đầu bằng một số nguyên. Chúng tôi chỉ có thể phân tích lần xuất hiện đầu tiên của một số nguyên trong một chuỗi. Hãy cố gắng hiểu với một ví dụ.

Chúng ta có thể sử dụng phân tích cú pháp theo 2 cách khác nhau:

  • Number.parseInt()
  • parseInt()
Đọc thêm  Cách viết một lời hứa JavaScript

Phương pháp đầu tiên tốt hơn vì nó chính xác hơn.

let padding = "22px";
console.log(Number.parseInt(padding)); // 22

let margin = "16px 12px";
console.log(Number.parseInt(margin)); // 16

let body = "container 12px";
console.log(Number.parseInt(body)); // NaN

Từ ví dụ trên, bạn có thể thấy rằng bạn chỉ có thể phân tích cú pháp lần xuất hiện đầu tiên của một số nguyên trong một chuỗi và chuỗi đó phải bắt đầu bằng một số.

Bạn cũng có thể phân tích cú pháp số thực với cùng quy tắc với parseFloat().

let padding = "2.5rem";
console.log(Number.parseFloat(padding)); // 2.5

let margin = "1.5rem 2.5rem";
console.log(Number.parseFloat(margin)); // 1.5

let body = "container 1rem";
console.log(Number.parseFloat(body)); // NaN

Đây là cách bạn trích xuất số nguyên hoặc số thực từ một chuỗi. Vậy chúng ta có thể sử dụng nó ở đâu? Nếu bạn quen thuộc với HTML và CSS, bạn có thể sử dụng parseInt() để trích xuất kích thước văn bản được đề cập trong HTML/CSS với sự trợ giúp của JavaScript. Sau khi trích xuất thông tin đó, bạn có thể thao tác với văn bản và thay đổi kích thước của một thành phần theo phần đệm, lề, v.v.

Làm thế nào để sử dụng Math Vật

Math là một đối tượng dựng sẵn có các phương thức và chức năng khác nhau để giúp bạn thực hiện các phép tính toán học.

Chỉ cần lưu ý rằng Toán học chỉ hoạt động với loại Số.

Có rất nhiều phương thức và hàm trong Math. Nhưng chúng ta sẽ chỉ thấy một vài trong số chúng trong hướng dẫn này. Để khám phá thêm, bạn có thể truy cập tài liệu tại đây.

let num = 16;
console.log(Math.sqrt(num)); 
// Gives the square root of a number.

let arr = ['1',4,7,20,32,35,41,'45'];
console.log(Math.max(...arr)); // 45
// ...arr is destructuring the array in place.
// max uses type coercion to convert a string to a number 
// and givse back the maximum number in an array.

console.log(Math.min(...arr)); // 1
// min gives back the min integer in an array

Có 4 phương pháp toán học có thể rất khó hiểu đối với người mới bắt đầu. Nhưng ở đây chúng tôi sẽ đơn giản hóa chúng hết mức có thể để hiểu rõ.

4 phương pháp đó là:

  • trunc()
  • floor()
  • round()
  • ceil()

Math.trunc()

Phương pháp này chỉ loại bỏ phần thập phân của một số nguyên. Phần thập phân dài bao nhiêu không quan trọng.

let height = 23.4;
let width = 23.6;

console.log(Math.trunc(height)); // 23
console.log(Math.trunc(width)); // 23

Math.sàn ()

Khi chúng ta sử dụng phương pháp sàn trên một số động, nó sẽ làm tròn xuống số nguyên gần nhất.

let height = 23.4;
let width = 23.6;

console.log(Math.floor(height)); // 23
console.log(Math.floor(width)); // 23

Math.round()

Math.round() làm tròn thành số nguyên gần nhất của một số dấu phẩy động. Nếu dấu phẩy động (số sau dấu thập phân) nhỏ hơn 5, nó sẽ làm tròn xuống. Nếu điểm động trên 5, nó sẽ làm tròn lên. Bạn có thể xem cách nó hoạt động ở đây:

let height = 23.4;
let width = 23.6;

console.log(Math.round(height)); // 23
console.log(Math.round(width)); // 24

Math.ceil()

Math.ceil() làm tròn số nguyên tiếp theo của dấu phẩy động. Nó hoàn toàn ngược lại với Math.floor().

let height = 23.4;
let width = 23.6;

console.log(Math.ceil(height)); // 24
console.log(Math.ceil(width)); // 24

Khi chúng ta thực hiện các thao tác trên dấu phẩy động trong JavaScript, chúng ta thường gặp phải vấn đề về độ chính xác của số thập phân. Hãy xem ví dụ dưới đây:

let operation = 0.1 / 0.3;
console.log(operation); // 0.33333333333333337

Chúng tôi có rất nhiều số thập phân định kỳ ở đây. Chúng tôi có thể kiểm soát các số thập phân định kỳ này và chỉ định số lượng số thập phân mà chúng tôi muốn bằng cách sử dụng toFixed() phương pháp.

let operation = 0.1 / 0.3;
console.log(operation); // 0.33333333333333337
console.log(operation.toFixed(1)); // 0.3
console.log(operation.toFixed(2)); // 0.33

Cách làm việc với ngày tháng trong JS

Ngày là một đối tượng trong JavaScript. Chúng ta có thể tính toán một ngày với sự trợ giúp của hàm tạo new Date(). Bây giờ một đối tượng ngày chứa một số tính bằng mili giây (chúng tôi đếm mili giây từ ngày 1 tháng 1 năm 1970).

let now = new Date();
console.log(now); // current date

console.log(new Date() / 1000); // milliseconds from 1st Jan 1970

Chủ yếu có bốn cách để tạo một ngày:

// 1
let now = new Date();
console.log(now);

// 2
now = new Date("Aug 31 2022 11:45:45");
console.log(now);

// 3
now = new Date("Nov 14 2022");
console.log(now);

// 4
let birth = "01-05-1998";
console.log(new Date(birth)); // 05 Jan 1998
  • Bạn sẽ muốn sử dụng phương pháp đầu tiên khi đang làm việc với ngày hiện tại và muốn thay đổi ngày và giờ một cách linh hoạt trong ứng dụng của mình.
  • Bạn có thể sử dụng phương pháp thứ hai khi bạn muốn làm việc với các ngày do người dùng cung cấp hoặc các ngày đã qua được lưu trữ.
  • Phương pháp thứ ba là một giải pháp thay thế đơn giản cho phương pháp thứ hai và đơn giản hơn một chút.
  • Nếu bạn muốn chuyển đổi một chuỗi thành định dạng ngày/giờ, bạn có thể sử dụng phương pháp thứ tư.
Đọc thêm  Vùng chết tạm thời (TDZ) và cẩu trong JavaScript – được giải thích bằng các ví dụ

Bạn có thể sử dụng bất kỳ phương pháp nào trong số này. Bởi vì nếu chúng tôi muốn trích xuất bất kỳ thông tin nào liên quan đến ngày đó, bạn có phương pháp được xác định trước để sử dụng mà bạn không thể sử dụng với chuỗi.

Khi chúng ta tạo một Date() mới, có 7 số là năm, tháng, ngày, giờ, phút, giây và mili giây theo thứ tự đó.

Có nhiều phương pháp mà chúng ta có thể sử dụng để lấy thông tin khác nhau.

  • getFullYear()
  • getMonth()
  • getDate()
  • getDay()
  • getHours()
  • getMinutes()
  • getSeconds()
  • getTime()
let now = new Date();

console.log(now.getFullYear()); // gives full year.
console.log(now.getMonth()); // gives number of month starting from 0.
console.log(now.getDate()); // gives date.
console.log(now.getDay()); //  gives day with Monday as 0 and so on.
console.log(now.getHours()); // gives hours in 24 hour format.
console.log(now.getMinutes()); //  gives minutes
console.log(now.getSeconds()); // gives seconds
console.log(now.getTime()); // gives time passed from 1 Jan 1970 till now in milliseconds

Cách thực hiện các thao tác trên ngày

Chúng tôi có thể thực hiện các hoạt động khác nhau vào ngày. Nếu có hai ngày và chúng tôi muốn tìm sự khác biệt giữa những ngày đó, chúng tôi có thể thực hiện phép trừ. Nhưng khi chúng tôi nhận được kết quả, chúng tôi nhận được nó ở dạng dấu thời gian mà chúng tôi phải chuyển đổi thành ngày.

let present = new Date('Aug 31 2020');
let past = new Date('Aug 31 1990');
let days  = present - past;
console.log(days); //  time stamp
console.log(Math.abs(new Date(days)/(1000*60*60*24))); // No of days

Nếu bạn muốn tính toán ngày chính xác hơn, bạn có thể sử dụng khoảnh khắc.js – nhưng nó có thể không cần thiết cho các dự án và ứng dụng đơn giản.

Đọc thêm  Học JavaScript bằng tiếng Tây Ban Nha – Khóa học đầy đủ cho người mới bắt đầu

kết thúc

Tôi hy vọng bây giờ bạn đã hiểu cách hoạt động của số và ngày trong JavaScript. Cảm ơn bạn đã đọc!

Bạn có thể theo dõi tôi trên:



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status