javascript的一些札记

1. 原来放在不同js文件里面的$(document).ready(function(){})都会执行到。

2. $(window).scroll(function(){})  窗口滚动事件。

3. $('#h_study_index').live('pageshow',function(event){});可以有多个绑定,多个绑定都会执行。按先后顺序执行。

4. 以前认为ajax是异步的,会不会出现代码交叉执行(这个在多线程中很常见),后来知道我想多了,js是单线程的,不会存在同时执行的情况。

ajax的执行块也是各自独立的,它们也是按先后执行的。就有点类似于安卓的Handler。

5. replace用法。参数g是匹配所有的,参数i是不区分大小写。

"abc".replace(/b./g,function(a,b,c){
    //a是匹配上的字符串,如bc
    //b是匹配字符器的位置,如1
    //c是整个字符串,如abc
});

  

6. js引用js

其实可以试试使用,JQuery的$.getScript();方法来实现的。
$.getScript("/js/common/taglib/xxx.js",function(){
  functionXXX();

})

7. 超简洁的js解析xml

    var xml = '<result id="78"><u>key</u></result>';
    var xmlObj = $(xml);
    alert(xmlObj.attr('id'));
    alert(xmlObj.find('u').text());

8. 以前觉得js不支持Set的类型,怪不方便的,后来看avalon源码的时候,发现这样一种写法,很实用。

    var array = ["David", "Jackson"];
    Array.prototype.contain = function(str){
        return this.indexOf(str)>-1;
    }
    Array.prototype.remove = function(str){
        var index = this.indexOf(str);
        if(index>-1){
            this.splice(index, 1);
        }
        return this;
    }
    alert(array.contain("ken"));
    alert(array.contain("David"));
    
    alert(array.remove("ken"));
    alert(array.remove("Jackson"));

 9. JSON.stringify原来还有传3个参数。

一直以为JSON.stringify是传一个参数的。原来它的完整语法是JSON.stringify(value [, replacer] [, space]) ,第二个参数可以把对象变数组、过虑属性。第三个参数可以控制显示格式,比如加换行符、加缩进。2017-05-07

原文地址:https://www.cnblogs.com/angelshelter/p/3972341.html