共计 1933 个字符,预计需要花费 5 分钟才能阅读完成。
黑客的方法论是一种波及不断改进和迭代的构建办法。黑客们认为总有一天会变得更好,而且没有什么是永远不可能实现的。
真正的黑客总是用不同的形式来解决没人关注的问题。
上面给出了一些十分弱小的 JavaScript 小技巧。
1. 全副替换
咱们都晓得 string.Replace()
函数仅能替换掉第一个匹配项。
你能够通过在正则表达式的开端增加 /g
来替换所有呈现的内容。
var example = "potato potato";
console.log(example.replace(/pot/, "tom"));
// "tomato potato"
console.log(example.replace(/pot/g, "tom"));
// "tomato tomato"
2. 提取惟一值
通过应用 Set
对象和 ...
运算符可能应用惟一值创立一个新数组。
var entries = [1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 8, 4, 2, 1]
var unique_entries = [...new Set(entries)];
console.log(unique_entries);
// [1, 2, 3, 4, 5, 6, 7, 8]
3. 将数字转换为字符串
只须要用 +
运算符带和一个空字符串即可。
var converted_number = 5 + "";
console.log(converted_number);
// 5
console.log(typeof converted_number);
// string
4. 将字符串转换为数字
只须要用 +
运算符即可。然而要留神:它仅实用于“字符串数字”。
the_string = "123";
console.log(+the_string);
// 123the_string = "hello";
console.log(+the_string);
// NaN
5. 随机排列数组中的元素
这样最适宜洗牌了:
var my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(my_list.sort(function() {return Math.random() - 0.5
}));
// [4, 8, 2, 9, 1, 3, 6, 5, 7]
6. 展平多维数组
只需应用 ...
运算符。
var entries = [1, [2, 5], [6, 7], 9];
var flat_entries = [].concat(...entries);
// [1, 2, 5, 6, 7, 9]
7. 条件短路
只须要举个例子就明确了:
if (available) {addToCart();
}
通过简略地应用变量和函数来简化代码:
available && addToCart()
8. 动静属性名
始终以来,我认为必须先申明一个对象,而后能力调配动静属性,然而 …
const dynamic = 'flavour';
var item = {
name: 'Coke',
[dynamic]: 'Cherry'
}
console.log(item);
// {name: "Coke", flavour: "Cherry"}
9. 用 length 调整货清空数组
如果要调整数组的大小:
var entries = [1, 2, 3, 4, 5, 6, 7];
console.log(entries.length);
// 7
entries.length = 4;
console.log(entries.length);
// 4
console.log(entries);
// [1, 2, 3, 4]
如果要清空数组:
var entries = [1, 2, 3, 4, 5, 6, 7];
console.log(entries.length);
// 7
entries.length = 0;
console.log(entries.length);
// 0
console.log(entries);
// []
你还有什么好用的技巧,请留言通知大家。
本文首发微信公众号:前端先锋
欢送扫描二维码关注公众号,每天都给你推送陈腐的前端技术文章
欢送持续浏览本专栏其它高赞文章:
- 深刻了解 Shadow DOM v1
- 一步步教你用 WebVR 实现虚拟现实游戏
- 13 个帮你进步开发效率的古代 CSS 框架
- 疾速上手 BootstrapVue
- JavaScript 引擎是如何工作的?从调用栈到 Promise 你须要晓得的所有
- WebSocket 实战:在 Node 和 React 之间进行实时通信
- 对于 Git 的 20 个面试题
- 深刻解析 Node.js 的 console.log
- Node.js 到底是什么?
- 30 分钟用 Node.js 构建一个 API 服务器
- Javascript 的对象拷贝
- 程序员 30 岁前月薪达不到 30K,该何去何从
- 14 个最好的 JavaScript 数据可视化库
- 8 个给前端的顶级 VS Code 扩大插件
- Node.js 多线程齐全指南
- 把 HTML 转成 PDF 的 4 个计划及实现
- 更多文章 …
正文完
发表至: javascript
2020-12-23