美文网首页
比较实用的JavaScript技巧

比较实用的JavaScript技巧

作者: peakol | 来源:发表于2018-05-14 11:49 被阅读0次
    1. 有的时候我们需要判断一个变量是否存在或者是否具有有效值,从而将它们的值视为true。对于做这样的检查,你可以使用!!(双重否定运算符),它能自动将任何类型的数据转换为布尔值,只有这些变量才会返回false:0,null,"",undefined或NaN,其他的都返回true。
      let a = 8;
      console.log(!!a)// true
    
    1. 使用+将变量转换成数字这个转换超级简单,但它只适用于数字字符串,不然就会返回NaN(不是数字)
    let a = '5'
    let b = +'a' // 5
    

    这个转换操作也可以作用于Date,在这种情况下,它将返回时间戳

    console.log(+new Date()) // 
    1461288164385 
    
    1. 短路条件
    if (conected) {
    login()
    }
    

    在这两个变量之间使用&&(AND运算符)来缩短代码。例如,前面的代码可以缩减到一行:

    conected && login()
    
    1. 使用||设置默认值
      在ES6中有默认参数这个功能。为了在旧版浏览器中模拟此功能,你可以使用||(OR运算符),并把默认值作为它的第二个参数。如果第一个参数返回false,那么第二个参数将会被作为默认值返回。
    function 
    User(name, age) {  
        this.name = name || "Oliver Queen";
        this.age = 
    age || 27;
    }
    var user1 = new User();  
    console.log(user1.name); // 
    Oliver Queen  
    console.log(user1.age); // 27
    
    var user2 = new 
    User("Barry Allen", 25);  
    console.log(user2.name); // Barry 
    Allen  
    console.log(user2.age); // 25 
    

    5.在循环中缓存array.length这个技巧非常简单,并且在循环处理大数组时能够避免对性能造成巨大的影响。基本上几乎每个人都是这样使用for来循环遍历一个数组的:

    for 
    (var i = 0; i < array.length; i++) {  
        
    console.log(array);
    }
    

    如果你使用较小的数组,那还好,但是如果处理大数组,则此代码将在每个循环里重复计算数组的大小,这会产生一定的延迟。为了避免这种情况,你可以在变量中缓存array.length,以便在循环中每次都使用缓存来代替array.length:

    var 
    length = array.length;  
    for (var i = 0; i < length; i++) {  
        
    console.log(array);
    }
    

    为了更简洁,可以这么写:

    for (var i = 0, length = 
    array.length; i < length; i++) {  
        console.log(array);
    }
    
    1. 数组截断
      这个技术可以锁定数组的大小,这对于要删除数组中固定数量的元素是非常有用的。例如,如果你有一个包含10个元素的数组,但是你只想获得前五个元素,则可以通过设置array.length = 5来阶段数组。看下这个例子:
    let arr = [1,2,3,4]
    console.log(arr.length)
    arr // [1,2,3,4]
    arr.length = 2
    arr // [1,2]
    
    1. 合并数组如果你需要合并两个数组,你可以使用Array.concat()函数:
    var array1 = [1, 2, 3];  
    var array2 = [4, 5, 6];  
    console.log(array1.concat(array2)); // [1,2,3,4,5,6]
    

    ; 但是,这个函数对于大数组来说不并合适,因为它将会创建一个新的数组并消耗大量的内存。在这种情况下,你可以使用Array.push.apply(arr1,arr2),它不会创建一个新数组,而是将第二个数组合并到第一个数组中,以减少内存使用

    var array1 = [1, 2, 3];  
    var array2 = [4, 5, 6];  
    console.log(array1.push.apply(array1, array2)); // [1,2,3,4,5,6]; 
    
    
    1. 对数组元素进行洗牌如果要像外部库Lodash那样对数据元素重新洗牌,只需使用这个技巧:
    var list = [1, 2, 3];  
    console.log(list.sort(function() {  
        return Math.random() - 0.5
    })); // [2,1,3]
    
    

    相关文章

      网友评论

          本文标题:比较实用的JavaScript技巧

          本文链接:https://www.haomeiwen.com/subject/krpddftx.html