【译】15 个有用的 JavaScript 技巧

简介: 【译】15 个有用的 JavaScript 技巧

原文地址:https://javascript.plainenglish.io/15-useful-javascript-tips-814eeba1f4fd

1)数字分隔符

为了提高数字的可读性,可以使用下划线作为分隔符。

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

2)事件监听器只运行一次

如果你想添加一个事件监听器并且只运行一次,你可以使用 once 选项。

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

 

3)console.log变量包装器

在 console.log() 中,将参数括在花括号中,以便您可以同时看到变量名和变量值。

const name = "Maxwell";
console.log({ name });

4)检查 Caps Lock 是否打开

可以使用 KeyboardEvent.getModifierState() 来检测 Caps Lock 是否打开。

const passwordInput = document.getElementById('password');
passwordInput.addEventListener('keyup', function (event) {
    if (event.getModifierState('CapsLock')) {
        // CapsLock is open
    }
});

5)从数组中获取最小值/最大值

可以结合扩展运算符使用 Math.min() 或 Math.max() 来查找数组中的最小值或最大值。

const numbers = [5, 7, 1, 4, 9];
console.log(Math.max(...numbers)); // 9
console.log(Math.min(...numbers)); // 1

6)获取鼠标位置

可以使用 MouseEvent 对象的 clientX 和 clientY 属性的值来获取有关当前鼠标位置坐标的信息。

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

7)复制到剪贴板

可以使用剪贴板 API 创建“复制到剪贴板”功能。

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

8)简写条件判断语句

如果函数只在条件为真时才执行,可以使用&&简写。

// 常规写法
if (condition) {
    doSomething();
}
// 简写
condition && doSomething();

9)console.table() 以特定格式打印表格

语法:

console.table(data [, columns]);

参数:

  • data 表示要显示的数据,它必须是数组或对象。
  • columns 表示包含列名称的数组。
function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}
const p1 = new Person("Mark", "Smith");
const p2 = new Person("Maxwell", "Siegrist");
const p3 = new Person("Lucy", "Jones");
console.table([p1, p2, p3], ["firstName"]);

1684819220748.png

10)将字符串转换为数字

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

11)数组去重

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

12)过滤数组中的所有假值

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

13)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 
}

     

14)reduce() 的妙用

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

15)元素的 dataset 属性

使用 dataset 访问元素的自定义属性(data-*)

<div id="user" data-name="Maxwell" data-age="32" data-something="Some Data">
    Hello Maxwell
</div>
<script>
    const user = document.getElementById('user');
    console.log(user.dataset); // { name: "Maxwell", age: "32", something: "Some Data" }
    console.log(user.dataset.name); // "Maxwell"
    console.log(user.dataset.age); // "32"
    console.log(user.dataset.something); // "Some Data"
</script>
相关文章
|
5月前
|
存储 前端开发 JavaScript
20 个超级有用的 JavaScript 技巧,让你的工作更轻松
20 个超级有用的 JavaScript 技巧,让你的工作更轻松
|
JavaScript 前端开发
10 个「有用」JavaScript 代码片段
10 个「有用」JavaScript 代码片段
|
移动开发 资源调度 JavaScript
12 个你可能从未使用过的有用的 JavaScript 库
JavaScript 在不断发展,几乎每天都有新库出来,或者扩展旧库以支持新功能。因此,我们现在拥有数千个 JavaScript 库。并非所有这些都对一般 Web 开发人员有用。
12 个你可能从未使用过的有用的 JavaScript 库
|
前端开发 JavaScript 搜索推荐
JavaScript工具函数汇总
JavaScript工具函数汇总
|
存储 移动开发 前端开发
每天学习10个实用Javascript代码片段(一)
随着 Javascript 越来越流行,使其应用的场景越来越多,不仅限于前端,可以是后端、混合应用程序、嵌入式设备等等,于是就有了大前端的叫法。现代前端开发有大量的框架和代码库来帮助实现各种复杂的需求,导致让很多人认为前端开发很简单,如切页面、组框架、网页制作等等。一个前端工程师如果需要提升技能,必然要经历原生代码的编写,代码片段可以加深对 Javascript 基础语法的理解,同时还能增加编码水平。
111 0
每天学习10个实用Javascript代码片段(一)
|
JavaScript 前端开发
JavaScript 工具函数的部分应用
JavaScript 工具函数的部分应用
92 0
|
JavaScript 前端开发 索引
每天学习 10 个实用JavaScript代码片段(七)
每天学习10个实用JavaScript代码片段,加深对 JavaScript 语法的理解,积累代码优化经验,新的内容来了,学习阅读代码是提高编码技能的最佳方式。如果觉得内容能够带来点帮助,可以查看专栏《碎片时间学习JavaScript代码》其他内容,又或者有用到的需求片段,不妨在留言区留言。
128 0
|
JavaScript 前端开发 数据安全/隐私保护
每天学习 10 个实用Javascript代码片段(六)
每天学习10个实用JavaScript代码片段,加深对 Javascript 语法的理解,积累代码优化经验,第六天来了,本文代码片段包括生成随机数、数字加密、四舍五入、文件扩展名、变量数字转换。如果觉得内容能够带来点帮助,可以查看专栏《碎片时间学习Javascript代码》其他内容,又或者有用到的需求片段,不妨在留言区留言。
112 0
|
JavaScript 前端开发 API
每天学习10个实用Javascript代码片段(五)
每天学习10个实用Javascript代码片段,加深对 Javascript 语法的理解,积累代码优化经验,第五天终于来了,如果觉得内容能够带来点帮助,可以查看专栏《碎片时间学习Javascript代码》其他内容,又或者有用到的需求片段,不妨在留言区留言。
104 0
|
JSON 前端开发 JavaScript
每天学习10个实用Javascript代码片段(三)
每天学习10个实用Javascript代码片段,加深对 Javascript 语法的理解,积累代码优化经验,第三天继续,如果觉得内容能够带来点帮助,可以查看专栏《碎片时间学习Javascript代码》其他内容,又或者有用到的需求片段,不妨在留言区留言。
84 0