Js 常用的优化技巧

2020-07-01  本文已影响0人  酷酷的凯先生

1. async 和 await 代替 promise (即异步改同步)

methods:{
    checkForm(){
        return new Promise((resolve,reject)=>{
            console.log(2)
            resolve()
         })
     },
    async submit(){
        await this.checkForm()
        console.log(1)
    }
}
// 结果  先打印2,再打印1

2. Object.is 比较两个值是否相等

Object.is() 严格比较两个值是否相等,弥补== 和=== 的缺点

== 缺点
null == undefined   //true
+0 == -0     //true

=== 缺点
+0 === -0     //true
NaN === NaN   //false

Object.is   只要值一样,就相等
Object.is(+0,-0)  // false
Object.is(NaN,NaN) // true

3. 数组深拷贝

法一: 
let arr = [1,2,3,4,5,6,7];
let tmp = JSON.parse(JSON.stringify(arr));
法二: 
let arr = [1,2,3,4,5,6,7];
let tmp = arr.slice(0);

这样就能得到一个新的数组,而且即便修改数据b的值,
也不会对数据 arr 有任何影响

4. 数据刷新后, 滚动到页面顶部

if (document.body.scrollTop) {
    document.body.scrollTop = 0
} else {
    document.documentElement.scrollTop = 0
}

5. 循环对比数组数据,有这个值就直接返回 ture

let  name = "aa";
 let flag =  Array.some(item=>{
     return item.name ===name
})
如果数组中有这个值就返回 true ,没有就返回 false
上一篇 下一篇

猜你喜欢

热点阅读