zoukankan      html  css  js  c++  java
  • Javascript的一些奇技淫巧 持续更新

    js学习笔记

    1.replace方法
    首先字符串的replace方法并不会替换所有匹配的字符串,仅仅替换第一次,当然 JavaScript 老手们都知道这里可以使用正则表达式,并且需要加上一个全局标志位(/g)

    //Mistake
    var str="David is an Arsenal fan, which means David is great";
    str.replace("David","Tom") //Tom is an Arsenal fan, which means David is great
    //Desired
    var str="David is an Arsenal fan, which means David is great";
    str.replace(/David/g,"Tom") //Tom is an Arsenal fan, which means Tom is great

    还有一个情况就是忽略大小写,此时标志位 /i 就很实用

    str.replace(/david/gi, "Tom"); // "Tom will always be an Arsenal fan, which means Tom will always be great"
    2.Array.prototype.sort 方法
    它可以这样用[1,3,7,2,9].sort();  
    也可以这样用
    [  
            { name: "Robin Van PurseStrings", age: 30 },  
            { name: "Theo Walcott", age: 24 },  
            { name: "Bacary Sagna", age: 28  }  
        ].sort(function(obj1, obj2) {  
            // Ascending: first age less than the previous  
            // 实现增序排列:前者的 age 小于后者  
            return obj1.age - obj2.age;  
        });
     // Returns:    
        // [  
        //    { name: "Theo Walcott", age: 24 },  
        //    { name: "Bacary Sagna", age: 28  },  
        //    { name: "Robin Van PurseStrings", age: 30 }  
        // ] 

    不仅可以对简单类型的数组项进行排序,可以通过属性来排序对象。如果哪天服务器端发来一段 JSON 数据,而且其中的对象需要排序。
    3.用 length 属性来截断数组
    几乎所有开发者都踩过 JavaScript 的这个坑——“传对象只是传引用”。
    经常会试图 把一个数组清空,但实际上却错误地创建了一个新数组。

    var myArray = yourArray = [1, 2, 3];  
    // :(  
    //
    myArray = []; // `yourArray` is still [1, 2, 3]   
    // The right way, keeping reference  
    // 正确的方法是保持引用  
    myArray.length = 0; // `yourArray` and `myArray` both [ ]  
                        // `yourArray` 和 `myArray`(以及其它所有对这个数组的引用)都变成 [ ] 了

    坑里的人们终于明白,原来传对象只是在传引用。因此当我把 myArray 重新赋值为 [] 时,确实会创建出一个新的空数组,
    但其它对老数组的引用仍然没变!大坑啊!还是换用截断的方法吧,少年。
    4. 使用 push 来合并数组

    var mergeTo=[4,5,6];
    var mergeFrom=[7,8,9];
    Array.prototype.push.apply(mergeTo,mergeFrom);
    console.info(mergeTo); //[4, 5, 6, 7, 8, 9]

    5.已最快的方式创建一个字符串

    var arr = ['item 1', 'item 2', 'item 3'];  
            var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>'; 
            //arr.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
            //return :<ul><li>item 1</li><li>item 2</li><li>item 3</li></ul>

    5.降低全局冲突

        var name = 'Jeffrey';  
        var lastName = 'Way';  
          
        function doSomething() {...}  
    
        console.log(name); // Jeffrey -- or window.name
    //Better
     var DudeNameSpace = {  
       name : 'Jeffrey',  
       lastName : 'Way',  
       doSomething : function() {...}  
     }  
    console.log(DudeNameSpace.name); // Jeffrey

    一个单一的名称显著降低与其他应用程序JS库冲突的机会。

    6.Use [] Instead of New Array()

    //Okay
    
        var a = new Array();  
        a[0] = "Joe";  
        a[1] = 'Plumber';  
    
    //Better
    
        var a = ['Joe','Plumber'];  

    7.变量名单省略“VAR”关键字,并使用逗号而不是

        var someItem = 'some string';  
        var anotherItem = 'another string';  
        var oneMoreItem = 'one more string';  
    
    //Better
    
        var someItem = 'some string',  
            anotherItem = 'another string',  
            oneMoreItem = 'one more string';

    8.Use Firebug's "Timer" Feature to Optimize Your Code

    function TimeTracker(){  
     console.time("MyTimer");  
     for(x=5000; x > 0; x--){}  
     console.timeEnd("MyTimer");  
    }  

    9.自动执行函数

    (function doSomething() {  
       return {  
          name: 'jeff',  
          lastName: 'way'  
       };  
    })();
  • 相关阅读:
    离愁
    梦想与生活
    神秘巨星
    Web用户控件
    Ajax
    php的基本语法与字符串与增删改查
    php建立方法
    jquery
    上传文件
    webfrom验证控件
  • 原文地址:https://www.cnblogs.com/hailiang2013/p/3420926.html
Copyright © 2011-2022 走看看