js小技巧

路由跳转-新窗口打开

const path = '/index'  // 要跳转的地址
let { href } = this.$router.resolve({ path: path })
window.open(href, '_blank')

多条件判断 includes() 代替 ||

const num = 1

// before
if(num == 1 || num == 2 || num == 3){
  console.log("Yay")
}

// after, 避免使用长|| 检查多个条件链
if([1,2,3].includes(num)){
  console.log("Yay")
}

数字与字符串的相互转换

// 数字转字符串
let numStr = 1 + ''
console.log(typeof numStr,numStr)  // 'string'  '1'

// 字符串转数字,使用+运算符
let numStr = "124"
let num = +numStr

json数据格式化显示

JSON.stringify(data, null, 4)

  1. data:需要解析成字符串的对象
  2. null:好像起到字符串json格式化换行的效果
  3. 4:格式化缩进格式按照四个字符缩进

使用 !+"\v1" 快速判断 IE8 及以下的浏览器

  1. 运行!+"\v1"
  2. true:IE8及以下; false:其它

使用 arr.length = 0 来清空数组

let arr = [0, 1, 2]
arr.length = 0
console.log(arr) // []

arr = [] 和 arr.length = 0 的区别:

var arr1 = [1,2,3]
var arr2 = [4,5,6]
var newArr1 = arr1
var newArr2 = arr2
console.log(arr1,newArr1,arr2,newArr2) // [1, 2, 3] [1, 2, 3] [4, 5, 6] [4, 5, 6]
arr1 = []
arr2.length = 0
console.log(arr1,newArr1,arr2,newArr2) // [] [1, 2, 3] [] []
  • arr = [],重新开辟一块内存,其它引用不受影响。
    • arr的指针指向这个空数组的内存,原有的内存数据还存在
    • 这意味着对先前数组的赋值任然保留在内存中,从而导致内存泄露
  • arr.length = 0,删除当前数组中的全部内容,但不影响与其他的关联性

sort()方法无效、自定义sort规则

解决sort()排序无效

// 对sort方法进行重写,本质是冒泡排序
// a-b是从小到大排序,b-a是从大到小排序

arr.sort(function (a, b) {
  return a - b; 
})

自定义sort规则

eg: 二维数组排序(根据第一个数由小到大排序)
输入:[ [3,5], [6,1], [5,8], [1,2] ]
输出:[ [1,2], [3,5], [5,8], [6,1] ]

arr.sort((a, b) => {
  return Number(a[0]) - Number(b[0]);
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值