网站首页 » 前端开发 » JavaScript » JavaScript 技巧大全
上一篇:
下一篇:

JavaScript 技巧大全

前言

这篇文章不会分享很高深的问题,只是把平时在前端开发中很常用到的东西整理出来,让经历过的东西有个家。

类型判断

console.log(Object.prototype.toString.call([1,2]));      // [object Array]
console.log(Object.prototype.toString.call({}));         // [object Object]
console.log(Object.prototype.toString.call("Hellow"));   // [object String]
console.log(Object.prototype.toString.call(1));          // [object Number]
console.log(Object.prototype.toString.call(true));       // [object Boolean]
console.log(Object.prototype.toString.call(null));       // [object Null]
console.log(Object.prototype.toString.call(undefined));  // [object Undefined]

上面这种方法全兼容

判断一个对象是否含有某个属性

(attr in obj) 方法一
obj.hasOwnProperty(attr) 方法二

上面两种方法二选一都可以,但是在使用上面这两种方法的时候需要注意一下他们之间的区别。

具体可以参考这里:

JavaScript 中的可枚举属性与继承的可枚举属性解密

更详细的可以看这里:

判断对象是否含有某个属性

只遍历数组中的值

有时候我们只想遍历数组中的值,而不想在遍历过程中出现下标,那么我们可以使用 ES6 为我们提供的新方法。

for(let item of ["a","b","c"]){
    console.log(item);
}

惰性函数

一次判断,“终身”受用。

const temp = "ios";
const dealingFn = (function(){
    if(temp === "ios"){
        return function(){
            // 逻辑代码 ......
        }
    }else{
        return function(){
            // 逻辑代码 ......
        }
    }
})();

// 在其它地方就可以像下面这样直接调用
dealingFn();

通过立即执行函数,在我们第一次进来页面时执行一个里面的函数,判断是 ios 还是 Android 然后直接把对应的处理函数返回给外层函数,这样,我们后面调用外层函数时就不需要重复的判断然后再执行相关代码了。上面只是一个思路,你可以根据自己的实践情况进行修改优化。

通过图片请求来测网速

// 假设图片大小为 1M
const img = new Image();
const start = new Date().getTime();
img.src = "http://yunkus.com/wp-content/themes/zxxPro/assets/images/default.jpg";
img.onload = function(){
    const end = new Date().getTime();
    console.log(end - start);
    speend = 1024/((end - start)/1000);
}

 

  • 微信扫一扫,赏我

  • 支付宝扫一扫,赏我

声明

原创文章,不经本站同意,不得以任何形式转载,如有不便,请多多包涵!

本文永久链接:http://yunkus.com/javascript-skill/

Leave a Reply

Your email address will not be published. Required fields are marked *

评论 END