原文地址: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"]);

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>

【译】15 个有用的 JavaScript 技巧的更多相关文章

  1. 12个非常有用的JavaScript技巧

    在这篇文章中,我将分享12个非常有用的JavaScript技巧.这些技巧可以帮助你减少并优化代码. 1) 使用!!将变量转换成布尔类型 有时,我们需要检查一些变量是否存在,或者它是否具有有效值,从而将 ...

  2. 45个有用的JavaScript技巧

    众所周知,JavaScript是世界上最流行的变成语言,不管是web网页,手机APP(例如PhoneGap或Appcelerator),还是服务器端(例如NodeJS或Wakanda)还有许多其他的实 ...

  3. 【转】网上看到的“12个非常有用的JavaScript技巧”

    1) 使用!!将变量转换成布尔类型 有时,我们需要检查一些变量是否存在,或者它是否具有有效值,从而将它们的值视为true.对于做这样的检查,你可以使用!!(双重否定运算符),它能自动将任何类型的数据转 ...

  4. 45 Useful JavaScript Tips, Tricks and Best Practices(有用的JavaScript技巧,技巧和最佳实践)

    As you know, JavaScript is the number one programming language in the world, the language of the web ...

  5. [技术翻译]您应该知道的13个有用的JavaScript数组技巧

    本次预计翻译三篇文章如下: 01.[译]9个可以让你在2020年成为前端专家的项目 02.[译]预加载响应式图像,从Chrome 73开始实现 03.[译]您应该知道的13个有用的JavaScript ...

  6. 21个值得收藏的Javascript技巧

    1  Javascript数组转换为CSV格式 首先考虑如下的应用场景,有一个Javscript的字符型(或者数值型)数组,现在需要转换为以逗号分割的CSV格式文件.则我们可以使用如下的小技巧,代码如 ...

  7. Javascript技巧

    Javascript数组转换为CSV格式 首先考虑如下的应用场景,有一个Javscript的字符型(或者数值型)数组,现在需要转换为以逗号分割的CSV格式文件.则我们可以使用如下的小技巧,代码如下: ...

  8. JavaScript技巧[转载]

    在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是 ...

  9. 12个JavaScript技巧

    转自:http://web.jobbole.com/86146/ 在这篇文章中将给大家分享12个有关于JavaScript的小技巧.这些小技巧可能在你的实际工作中或许能帮助你解决一些问题. 使用!!操 ...

  10. 应该知道的25个非常有用的CSS技巧

    在我们的前端CSS编码当中,经常要设置特殊的字体效果,边框圆角等等,还要考虑兼 容性的问题, CSS网页布局,说难,其实很简单.说它容易,往往有很多问题困扰着新 手,在中介绍了非常多的技巧,这些小技巧 ...

随机推荐

  1. 齐博x1云市场注意事项

    安装云市场应用注意事项 大到频道,小到插件甚至钩子及风格都可以在线安装,在线升级. 但是有一个大家务必注意的地方,就是重装系统后,再安装有可能导致重复收费. 这个问题是可以解决的.当然如果不是重装系统 ...

  2. RedHat7.6安装mysql8步骤

    1.官网下载mysql安装包 直达链接:https://dev.mysql.com/downloads/mysql/    2.将下载好的安装包上传到redhat系统上(有多种上传方式,本次使用Sec ...

  3. 一、Vue.js介绍

    一.介绍 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手 ...

  4. 安装zabbix-agent2之ansible-playbook

    zabbix被监控端安装zabbix-agent2之ansible-playbook --- - name: install agent hosts: all vars: server_host: & ...

  5. 创建base公共组件

    公共模块 基础模块参照了vant的思路,使用bem命名规范.先创建一个命名空间,这个命名空间返回创建组件函数与生成命名方法.在创建组件函数中创建name与install属性用于注册vue组件 创建组件 ...

  6. JVM学习笔记——内存模型篇

    JVM学习笔记--内存模型篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的内存模型部分 我们会分为以下几部分进行介绍: 内存模型 乐观锁与悲观锁 synchronized优化 内 ...

  7. C#多线程之高级篇(上)

    前言 抛开死锁不谈,只聊性能问题,尽管锁总能粗暴的满足同步需求,但一旦存在竞争关系,意味着一定会有线程被阻塞,竞争越激烈,被阻塞的线程越多,上下文切换次数越多,调度成本越大,显然在高并发的场景下会损害 ...

  8. vscode分级文件夹

    如果vscode不小心设置成文件独立展开,一堆文件看着很乱 这样设置 首选项-设置-功能-资源管理器-compack folders 就可以折叠文件夹了

  9. IOS AND Android 配置Fiddler环境

    下载:http://rj.baidu.com/soft/detail/10963.html?ald 运行Fiddler点击Tools: 选择设置选项:   1.     选择HTTPS新选项卡. 2. ...

  10. 复现MySQL的索引选择失误以及通过OPTIMIZER_TRACE分析过程

    复现MySQL的索引选择失误以及通过OPTIMIZER_TRACE分析过程 验证环境:MySQL 5.7.39 windows-pc 一.构造数据(生成150万数据) 构建一张账户表,带有一级部门id ...