JavaScript 的一些小技巧
一些 JavaScript 中的小技巧总结, 包括 ECMAScript, DOM, Node.js 的, 持续更新...
原址清空数组元素, 使长度为零:
const arr = [ 1, 2, 3 ]; // 另一种常见写法是 arr.splice(0, arr.length) arr.length = 0
快速解析带注释的JSON字符串:
const input = ` { // 一些注释 foo: "bar", } ` const obj = eval('(' + input + ')')
字符串取整:
// 注意一定要传入第二个参数, 其意义是进制, 如果不传, 在不同的浏览器 // 表现可能会不致, 特别是当起始字符中 0 或者 0x 的时候 const intValue = parseInt('0123abc', 10) // -> 123
小数取整:
// 小数取整有四种情况: 向上取整, 向下取整, 四舍五入, 只保留整数部分 // 无论哪一种, 都不要使用 parseInt 啦, parseInt 的第一个参数是个 // 字符串, 如果不是的话, 会强制转为字符再进行字符串解析. // 四舍五入 const roundValue = Math.round(1.5) // -> 2 // 上下取整 const floorValue = Math.floor(1.5) // -> 1 // 向上取整 const ceilValue = Math.ceil(1.1) // -> 2 // 只保留整数部分, 这种方法只能用于 (-0x80000000, 0x80000000) // 范围内的小数. const fixedValue1 = 1.7 | 0 // -> 1 const fixedValue2 = -1.7 | 0 // -> -1
给对象定义一个惰性加载的 property, 同时只调用一次 getter:
Object.defineProperty(window, 'foo', { get() { console.log('call getter') Object.defineProperty(window, 'foo', { value: new Date }) return this.foo } }) // 第一次 access, 会调用上面的 get 函数, 返回一个 Date 对象 console.log(window.foo) // -> call getter, Date(...) // 后面的获取就不会调用 getter 了, 而是直接拿到上面的 Date console.log(window.foo === window.foo) // -> true
undefined
的另一种写法:void 0
, 二者完全等价的a
标签的href
属性可以直接是javascript:
, 无需用javascript: void(0)
之类的
相关推荐
nmgxzm00 2020-11-10
ifconfig 2020-10-14
hhanbj 2020-11-17
zfszhangyuan 2020-11-16
古叶峰 2020-11-16
一个智障 2020-11-15
jipengx 2020-11-12
81427005 2020-11-11
xixixi 2020-11-11
游走的豚鼠君 2020-11-10
苗疆三刀的随手记 2020-11-10
Web卓不凡 2020-11-03
小飞侠V 2020-11-02
帕尼尼 2020-10-30
爱读书的旅行者 2020-10-26
帕尼尼 2020-10-23
杏仁技术站 2020-10-23
淼寒儿 2020-10-22