今天這篇文章,我跟大家分享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() 的時候,将參數用大括号括起來,這樣可以同時看到變量名和變量值。
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、元素的 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>
本文完~
學習更多技能
請點選下方公衆号