天天看點

19個少見卻很有用的JavaScript技巧

19個少見卻很有用的JavaScript技巧

今天這篇文章,我跟大家分享19個少見卻很有用的 JavaScript技巧,希望對你也幫助。

1、“傳回”按鈕

使用 history.back() 可以建立一個浏覽器“傳回”按鈕。

<button onclick="history.back()">
    傳回
</button>      

2、數字分隔符

為了提高數字的可讀性,您可以使用下劃線作為分隔符:

const largeNumber = 1_000_000_000;
console.log(largeNumber); // 1000000000      

3、事件監聽器隻運作一次

如果你想添加一個事件監聽器并且隻運作一次,你可以使用 once 選項:

element.addEventListener('click', () => console.log('I run only once'), {
    once: true
});      

4、console.log 變量包裝

您在 console.log() 的時候,将參數用大括号括起來,這樣可以同時看到變量名和變量值。

19個少見卻很有用的JavaScript技巧

5、從數組中擷取最小值/最大值

您可以使用 Math.min() 或 Math.max() 結合擴充運算符來查找數組中的最小值或最大值。

const numbers = [6, 8, 1, 3, 9];
console.log(Math.max(...numbers)); // 9
console.log(Math.min(...numbers)); // 1      

6、 檢查 Caps Lock 是否打開

您可以使用 KeyboardEvent.getModifierState() 來檢測是否 Caps Lock 打開。

const passwordInput = document.getElementById('password');
passwordInput.addEventListener('keyup', function (event) {
if (event.getModifierState('CapsLock')) {
// CapsLock 已經打開了
    }
});      

7、 複制到剪貼闆

您可以使用 Clipboard api 建立“複制到剪貼闆”功能:

function copyToClipboard(text) {
    navigator.clipboard.writeText(text);
}      

8、擷取滑鼠位置

您可以使用 MouseEvent 對象下 clientX 和 clientY 的屬性值,擷取滑鼠的目前位置坐标資訊。

document.addEventListener('mousemove', (e) => {
console.log(`Mouse X: ${e.clientX}, Mouse Y: ${e.clientY}`);
});      

9、縮短數組

您可以設定 length 屬性來縮短數組。

const numbers = [1, 2, 3, 4, 5]
numbers.length = 3;
console.log(numbers); // [1, 2, 3]      

10、簡寫條件判斷語句

如果僅在判斷條件為 true 時才執行函數,則可以使用 && 簡寫。

// 普通寫法
if (condition) {
    doSomething();
}
// 簡寫
condition && doSomething();      

11、console.table() 列印特定格式的表格

文法:

// [] 裡面指的是可選參數
console.table(data [, columns]);      

參數:

  • data 表示要顯示的資料。必須是數組或對象。
  • columns 表示一個包含列的名稱的數組。

執行個體:

// 一個對象數組,隻列印 firstName
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
const john = new Person("John", "Smith");
const jane = new Person("Jane", "Doe");
const emily = new Person("Emily", "Jones");
console.table([john, jane, emily], ["firstName"]);      

12、 數組去重

const numbers = [2, 3, 4, 4, 2];
console.log([...new Set(numbers)]); // [2, 3, 4]      

13、将字元串轉換為數字

const str = '404';
console.log(+str) // 404;      

14、将數字轉換為字元串

連接配接空字元串。

const myNumber = 403;
console.log(myNumber + ''); // '403'      

15、從數組中過濾所有虛值

const myArray = [1, undefined, NaN, 2, null, '@denicmarko', true, 3, false];
console.log(myArray.filter(Boolean)); // [1, 2, "@denicmarko", true, 3]      

16、妙用 includes

const myTech = 'JavaScript';
const techs = ['html', 'css', 'JavaScript'];
// 普通寫法
if (myTech === 'HTML' || myTech === 'CSS' || myTech === 'JavaScript') {
// do something
}
// includes 寫法
if (techs.includes(myTech)) {
// do something 
}      

17、妙用 reduce 對數組求和

const myArray = [10, 20, 30, 40];
const reducer = (total, currentValue) => total + currentValue;
console.log(myArray.reduce(reducer)); // 100      

18、console.log() 樣式

您知不知道可以使用 CSS 語句在 DevTools 中設定 console.log 輸出的樣式:

19個少見卻很有用的JavaScript技巧

19、元素的 dataset

使用 dataset 屬性通路元素的自定義資料屬性

<div id="user" data-name="John Doe" data-age="29" data-something="Some Data">
    John Doe
</div>
<script>
const user = document.getElementById('user');
console.log(user.dataset); 
// { name: "John Doe", age: "29", something: "Some Data" }
console.log(user.dataset.name); // "John Doe"
console.log(user.dataset.age); // "29"
console.log(user.dataset.something); // "Some Data"
</script>      

本文完~

學習更多技能

請點選下方公衆号

繼續閱讀