获取某年某月有多少天
此处借用 Date api 创建时间的时候超出的时间会自动顺延到下个月。比如new Date(2019, 0, 32)
就会自动顺延到 2019 年 2 月 1 日,这样就可以直接用 32 减去 1 就可以得出 1 月份的天数,当然 32 只是一个最小数,你也可以用 33、34…
那如果说往大取可以,往小取是不是也可以,答案是肯定的。比如new Date(2019, 0, 0)
就会取到 2018 年的 12 月 31 日,这样我们就可以直接取到上个月的总天数,要取指定月的天数,只需给指定月数 month + 1 即可。
1 | // 下面这两个函数是等效的 |
对一个数取幂
这时候我们可以使用 Math.pow()
,但是我们更推荐使用取幂运算符 **
1 | // bad |
对象结构用在数组上
获取数组的长度
1 | const {0: a, 1: b, length: l} = ['a', 'b', 'c']; |
还可以获取数组最后一个元素
1 | const {length: l, [l-1]: last, ...rest} = [1, 2, 3]; |
不只是 length,数组的其他方法,比如 join、push 等方法也是可以解构
1 | let {map: m, push: p} = [] |
通过 Array 的原型链也可以解析 Object.prototype 上的属性
1 | Array.prototype.__proto__.hasOwnProperty === Object.prototype.hasOwnProperty // true |
这样就可以看出,解构操作会沿着当前对象及其原型链一直向上找,直到 Object.prototype.__proto__
对象,如果被解构的对象及其原型链上不存在该属性,则返回 undefined
。
将数组转为对象
1 | const { ...obj } = [1, 2, 3]; |
- 本文链接: https:https://whyour.cn/post/javascript-pro-tips-2.html
- 最后更新于:
- 版权声明: 本博客所有文章除特别声明外,均采用 署名 4.0 国际(CC BY 4.0) 许可协议。转载请注明出处!
nodejs 开发企业微信第三方应用入门教程
ES6 实现斐波那契数列