Computer >> Máy Tính >  >> Phần mềm >> Phần mềm

9 JavaScript / Node.js Một dòng bạn nên biết

9 JavaScript / Node.js Một dòng bạn nên biết

Khi web và các ứng dụng trở nên phức tạp hơn, JavaScript và Node.js ngày càng trở thành các yêu cầu phổ biến trong danh mục của nhà phát triển. Để cải thiện khả năng viết mã của bạn và giảm thiểu những vấn đề đau đầu mà bạn gặp phải, bạn có thể xác định sớm một số chức năng trong mã của mình để nhanh chóng hoàn thành các tác vụ đơn giản.

Lưu ý rằng Javascript không giống như Java. Kiểm tra sự khác biệt tại đây.

1. Xáo trộn các giá trị trong một mảng

Giống như xáo trộn một bộ bài, bạn cũng có thể xáo trộn các giá trị trong một mảng thường xuyên như bạn muốn trong JavaScript với một lớp lót này:

const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());

Giữ nguyên sự tương tự của bộ bài, đây là giao diện của nó nếu tôi muốn xáo trộn 52 giá trị:

let myarray = Array.from({length:52},(v,k)=>k+1);
 
console.log(shuffleArray(myarray));

Mã sẽ hiển thị các giá trị lộn xộn ngẫu nhiên trong đầu ra bảng điều khiển của bạn.

9 JavaScript / Node.js Một dòng bạn nên biết

2. Kiểm tra xem Ngày là Cuối tuần hay Ngày trong tuần

Bằng cách sử dụng toán hạng phần dư đơn giản, bạn có thể dễ dàng kiểm tra xem một ngày có rơi vào cuối tuần hay không trong JavaScript:

const isWeekend = (date) => date.getDay() % 6 == 0;

Nếu bạn muốn thay đổi điều đó để kiểm tra xem ngày được đề cập có rơi vào ngày trong tuần hay không, chỉ cần đảo ngược so sánh cuối cùng:

const isWeekday = (date) => date.getDay() % 6 !== 0;

Trong đoạn mã sau, tôi kiểm tra xem hôm nay có phải là ngày cuối tuần hay không:

console.log(isWeekend(new Date()));

Thay thế cho việc xác định isWeekday riêng biệt hoặc isWeekend các biến, bạn chỉ có thể sử dụng NOT toán hạng trong khi thể hiện if-then-else câu lệnh cho một trong hai biến như sau:

if(!isWeekend(new Date())) {
    console.log("Today falls on a weekday.");
 
} else {
    console.log("Today falls on a weekend.");
}
9 JavaScript / Node.js Một dòng bạn nên biết

3. Cắt một số thành một điểm thập phân cụ thể

Đầu ra mà bạn cung cấp cho người dùng của mình cần phải đơn giản nhất có thể và không có gì khiến trang web hoặc ứng dụng của bạn kém hấp dẫn hơn việc nhìn thấy một chuỗi số lớn bị cắt xén. Để loại bỏ các dấu thập phân ít quan trọng hơn trong một số và hiển thị nó như vậy cho người dùng, hãy sử dụng định nghĩa tiện lợi này:

const decimalFormat = (n, places) => ~~(Math.pow(10, places) * n) / Math.pow(10, places);

Để kiểm tra điều này, tôi xác định một giá trị số với số lượng chữ số thập phân vô lý và gọi hàm nhanh này để cắt nó thành hai chữ số thập phân.

let deciwow = 299.39542014592
 
console.log(decimalFormat(deciwow, 2));

Kết quả sẽ đỡ chướng mắt hơn.

9 JavaScript / Node.js Một dòng bạn nên biết

4. Chuyển đổi nhiệt độ

Trong JavaScript, không có cách chuẩn hóa nào để chuyển đổi giữa độ C sang độ F, nhưng với hai chữ lót đơn giản, bạn có thể tạo tiêu chuẩn của riêng mình.

Đối với độ C sang độ F:

const cToF = (celsius) => celsius * 9/5 + 32;

Và đối với độ F sang độ C:

const fToC = (fahrenheit) => (fahrenheit - 32) * 5/9;

Ở thị trấn của tôi, nhiệt độ là -2 độ C. Sử dụng một lớp lót chuyển đổi độ C sang độ F, chúng tôi có thể tìm hiểu ý nghĩa của điều này đối với một người sống ở Hoa Kỳ:

cToF(-2);

Biểu thức đó tạo ra nhiệt độ 28,4 độ F.

9 JavaScript / Node.js Một dòng bạn nên biết

5. Kiểm tra xem ai đó đang sử dụng Chế độ tối

Nếu bạn muốn nội dung bạn hiển thị tôn trọng bảng màu của người sử dụng mã của bạn, JavaScript bao gồm một cách để phát hiện xem ai đó đang sử dụng chế độ tối để bạn có thể điều chỉnh màu sắc cho phù hợp. Phương pháp này hơi phức tạp để viết, nhưng bạn có thể rút ngắn điều này bằng cách sử dụng một lớp lót sau:

const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;

Dưới đây là một ví dụ về séc sử dụng biến này:

if (isDarkMode) {
    console.log("This screen is in dark mode.");
} else {
    console.log("This screen is not using dark mode.");
}

Lưu ý rằng mã này chỉ hoạt động trong JavaScript dành cho trình duyệt. Node.js không triển khai hỗ trợ cho window .

6. Lấy giá trị trung bình của một dãy số

Khi xử lý tập dữ liệu, JavaScript có một chức năng tiện dụng gắn với mảng cho phép bạn thực hiện phép tính số học cần thiết để lấy tổng của tất cả các giá trị của một bảng cụ thể, sau đó chia các số này cho chiều dài của bảng. Để thực hiện điều này một cách trang nhã trong một dòng mã, bạn chỉ cần thực hiện điều này:

const getAverage = (arr) => arr.reduce((a, b) => a + b, 0) / arr.length;

Ở đây, tôi tạo một tập dữ liệu và đưa ra giá trị trung bình của tất cả các giá trị của nó thông qua bảng điều khiển:

let dataset = [2, 14, 88, 204, 1515, 1294, 12, 144];
 
console.log(getAverage(dataset));

Sử dụng mã này, đầu ra của bạn phải là 409.125.

9 JavaScript / Node.js Một dòng bạn nên biết

7. Tạo UUID

Nếu bạn muốn thu thập số liệu thống kê và dữ liệu từ những người sử dụng ứng dụng của bạn (ví dụ:bằng cách tạo cookie), một trong những cách tốt nhất để thực hiện việc này mà không bị xâm phạm là tạo mã nhận dạng duy nhất (UUID). JavaScript không bao gồm một cách dễ dàng để tạo UUID tuân thủ RFC4122 (mặc dù Node.js có uuid gói npm cung cấp chức năng này ngoài hộp).

Trong JS, bạn có thể bật ra một UUID mới được tạo cho người dùng của mình với biểu thức một dòng sau:

const genUUID = (a) => (a ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, genUUID));

Tại đây, tôi kiểm tra đầu ra:

console.log(genUUID());
9 JavaScript / Node.js Một dòng bạn nên biết

8. Nhận số ngày giữa hai ngày

Khi xác định độ tuổi của một giá trị nhất định (như tài khoản của người dùng), bạn sẽ phải tính số ngày đã trôi qua kể từ một thời điểm nhất định. Dưới đây là một lớp lót đơn giản thực hiện điều đó:

const ageDays = (old, recent) => Math.ceil(Math.abs(old - recent) / (1000 * 60 * 60 * 24));

Đối với một trường hợp sử dụng ví dụ, chúng tôi giả vờ rằng chúng tôi đang đánh giá độ tuổi của người dùng đã tạo tài khoản của họ vào ngày 28 tháng 12 năm 2012 và sử dụng khai báo này để biết số ngày từ ngày đó đến hôm nay:

console.log(ageDays(new Date('2012-12-28'), new Date()));

Tại thời điểm viết bài này, kết quả sẽ là 3298 ngày.

9 JavaScript / Node.js Một dòng bạn nên biết

9. Tạo một số ngẫu nhiên trong một phạm vi

Đôi khi, chỉ tạo một số ngẫu nhiên là không đủ. Bạn có thể chỉ cần giới hạn các điều kiện mà nó được tạo ra. Với một lớp lót này, bạn sẽ tạo ra các số trong một phạm vi cụ thể nhất định:

const rangeRandom = (low, high) => Math.floor(Math.random() * (high - low + 1)) + low;

Kiểm tra điều này sẽ dễ dàng:

console.log(rangeRandom(400, 20000));
9 JavaScript / Node.js Một dòng bạn nên biết

Câu hỏi Thường gặp

1. Tại sao sử dụng UUID trong cookie?

Vì về bản chất, cookie có tính chất xâm nhập và chiếm không gian trên máy của người dùng, bạn nên hướng tới việc sử dụng các công cụ này để thu thập dữ liệu càng hiệu quả và không xâm phạm càng tốt. Sử dụng UUID mang lại lợi ích gấp đôi. Đầu tiên, nó giảm thiểu không gian bị chiếm dụng trên bộ lưu trữ dựa trên máy khách do mã định danh chỉ có độ dài 128 bit. Thứ hai, nó phụ thuộc vào bất kỳ dữ liệu cá nhân nào của người dùng.

2. Tôi gặp lỗi "cửa sổ không được xác định" trong Node.js khi phát hiện chế độ tối. Tôi phải làm gì?

Node.js không thể thực hiện cuộc gọi đến các mô-đun phía máy khách bởi vì nó không có cùng mối quan hệ máy chủ-máy khách nội tại mà JavaScript có. Một lớp lót phát hiện chế độ tối trong bài viết này dành riêng cho JavaScript dựa trên trình duyệt.

3. Mã này có chung cho tất cả các trình duyệt không?

Mã JavaScript sử dụng một trình thông dịch được cho là hoạt động phổ biến. Mặc dù về mặt lý thuyết, nó hoạt động trên tất cả các trình duyệt, nhưng cách chúng diễn giải mã của bạn có thể hơi khác một chút, đặc biệt là với phần mềm rất cũ. Trong trường hợp của tất cả các dòng một được trình bày ở đây, tất cả chúng sẽ trả về cùng một kết quả bất kể trình duyệt mà người dùng của bạn chạy mã trên. Tuy nhiên, hãy lưu ý rằng một số tính năng bạn sử dụng trong JavaScript nói chung có thể không hoạt động trên các trình duyệt như Pale Moon, Internet Explorer hoặc phiên bản đầu những năm 2000 của các trình duyệt hiện đang được phát triển tích cực.