1.生成指定范围的数字
在某些情况下,我们会创建一个处在两个数之间的数组。假设我们要判断某人的生日是否在某个范围的年份内,那么下面是实现它的一个很简单的方法
let start = 1900, end = 2000; [...new Array(end + 1).keys()].slice(start); // [ 1900, 1901, ..., 2000] // 还有这种方式,但对于很的范围就不太稳定 Array.from({ length: end - start + 1 }, (_, i) => start + i);
2.使用值数组作为函数的参数
在某些情况下,我们需要将值收集到数组中,然后将其作为函数的参数传递。 使用 ES6,可以使用扩展运算符(...)并从[arg1, arg2] > (arg1, arg2)中提取数组:
const parts = { first: [0, 2], second: [1, 3], } ["Hello", "World", "JS", "Tricks"].slice(...parts.second) // ["World", "JS"]
3.将值用作 Math 方法的参数
当我们需要在数组中使用Math.max或Math.min来找到最大或者最小值时,我们可以像下面这样进行操作:
const elementsHeight = [...document.body.children].map( el => el.getBoundingClientRect().y ); Math.max(...elementsHeight); // 474 const numbers = [100, 100, -1000, 2000, -3000, 40000]; Math.min(...numbers); // -3000
4.合并/展平数组中的数组
Array 有一个很好的方法,称为Array.flat,它是需要一个depth参数,表示数组嵌套的深度,默认值为1。 但是,如果我们不知道深度怎么办,则需要将其全部展平,只需将Infinity作为参数即可 "htmlcode">
const arrays = [[10], 50, [100, [2000, 3000, [40000]]]] arrays.flat(Infinity) // [ 10, 50, 100, 2000, 3000, 40000 ]
5. 防止代码崩溃
在代码中出现不可预测的行为是不好的,但是如果你有这种行为,你需要处理它。
例如,常见错误TypeError,试获取undefined/null等属性,就会报这个错误。
const found = [{ name: "Alex" }].find(i => i.name === 'Jim') console.log(found.name) // TypeError: Cannot read property 'name' of undefined
我们可以这样避免它:
const found = [{ name: "Alex" }].find(i => i.name === 'Jim') || {} console.log(found.name) // undefined
6. 传递参数的好方法
对于这个方法,一个很好的用例就是styled-components,在ES6中,我们可以将模板字符中作为函数的参数传递而无需使用方括号。 如果要实现格式化/转换文本的功能,这是一个很好的技巧:
const makeList = (raw) => raw .join() .trim() .split("\n") .map((s, i) => `${i + 1}. ${s}`) .join("\n"); makeList` Hello, World Hello, World `; // 1. Hello,World // 2. World,World
7.交换变量
使用解构赋值语法,我们可以轻松地交换变量 使用解构赋值语法 "htmlcode">
let a = "hello" let b = "world" // 错误的方式 a = b b = a // { a: 'world', b: 'world' } // 正确的做法 [a, b] = [b, a] // { a: 'world', b: 'hello' }
8.按字母顺序排序
需要在跨国际的项目中,对于按字典排序,一些比较特殊的语言可能会出现问题,如下所示 "htmlcode">
// 错误的做法 ["a", "z", ""].sort((a, b) => a - b); // ['a', 'z', '"a", "z", ""].sort((a, b) => a.localeCompare(b)); // [ 'a', '"htmlcode">const password = "hackme"; password.substr(-3).padStart(password.length, "*"); // ***kme掌握这些小技巧,在日常开发过程中可以避免很多不必要的错误,更多关于JavaScript日常开发小技巧请查看下面的相关链接
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 郑秀文.2024-Best.Concert.Live【华纳】【FLAC分轨】
- 《Pax Dei》配置要求一览
- 《过山车之心2》存档位置介绍
- 《三国志8 REMAKE》评测:自定义的三国演义
- 群星《少年白马醉春风 网剧OST原声专辑》[320K/MP3][117.05MB]
- 群星《少年白马醉春风 网剧OST原声专辑》[FLAC/分轨][621.04MB]
- 《魏佳艺5CD合集》[WAV分轨][3.8G]
- CSGO职业选手donk怎么样 2024最新donk个人资料介绍
- CSGO职业选手NiKo怎么样 2024最新Niko个人资料介绍
- 剑网3丝路风语PVE焚影怎么打 丝路风语PVE焚影圣诀手法配装攻略
- [老虎魚古典名盘]心碎SACD浪漫小提琴之声[DSF]
- Queen(皇后乐队)《GreatestHitsII》[SACD-DSF]
- 伤感绝唱《凄凉的爱》黑胶3CD[WAV+CUE]
- 老外盛赞《剑星》新战衣:还是韩厂了解玩家胃口!
- 玩家认为不用纠结游玩方式:享受才是第一 你同意吗?