分享几个本人认为比较实用的技巧给大家,有错误的地方请大家指出来共同交流

1.Insert item inside an Array(向数组中插入元素)

向一个数组中插入元素是平时很常见的一件事情。你可以使用push在数组尾部插入元素,可以用unshift在数组头部插入元素,也可以用splice在数组中间插入元素。

    var arr = [1,2,3,4,5];
     //old method
    arr.push(6);
    //new method 快43%
    arr[arr.length] = 6;
   
    var arr = [1,2,3,4,5];
    //old method
    arr.unshift(0);
    //new method 快98%
    [0].concat(arr);

2.Tip to measure performance of a javascript block(测量javascript代码块性能的小知识)

快速的测量javascript的性能,我们可以使用console的方法,例如

   console.time("Array initialize");
    var arr = new Array(100),
        len = arr.length,
        i;
   
    for (i = 0; i < len; i++) {
        arr[i] = new Object();
    };
    console.timeEnd("Array initialize"); // 0.711ms

3.Fat Arrow Functions(箭头函数)

语法: 更少的代码行; 不再需要一遍一遍的打function了

语义: 从上下文中捕获this关键字

   // 使用functions
    var arr = [5,3,2,9,1];
    var arrFunc = arr.map(function(x) {
      return x * x;
    });
    console.log(arrFunc )
   
    // 使用箭头函数
    var arr = [5,3,2,9,1];
    var arrFunc = arr.map((x) => x*x);
    console.log(arrFunc )

4.Converting to number fast way(转换为数字的更快方法)

将字符串转换为数字是极为常见的。最简单和快速的方法是使用+(加号) 来实现。

    var one = '1';
    var numberOne = +one; // Number 1
    var one = '1';
    var negativeNumberOne = -one; // Number -1

5.Use === instead of ==(使用 === 而不是 ==)

== (或者 !=) 操作在需要的情况下自动进行了类型转换。=== (或 !==)操作不会执行任何转换。===在比较值和类型时,可以说比==更快。

   [10] ==  10      // 为 true
    [10] === 10      // 为 false
   
    '10' ==  10      // 为 true
    '10' === 10      // 为 false
   
     []  ==  0       // 为 true
     []  === 0       // 为 false
   
     ''  ==  false   // 为 true 但 true == "a" 为false
     ''  === false   // 为 false

6.Check if a property is in a Object(检查某对象是否有某属性)

   //method1
        var myObject = {
          name: '@tips_js'
        };
        if (myObject.name) { }
   
    //method2
        var myObject = {
          name: '@tips_js'
        };
   
        myObject.hasOwnProperty('name'); // true
        'name' in myObject; // true
   
        myObject.hasOwnProperty('valueOf'); // false, valueOf 继承自原型链
        'valueOf' in myObject; // true

至尊童
1 声望1 粉丝