js笔记

 

var arr = "1|2|3|4|5|6".split("|");
alert(arr instanceof Array);

var a;
alert(typeof (a) == 'undefined');
判断null与undefined 用 ===

// 正则表达式语法:
            // 像数组的对象 regex.exec(要提取的字符串);
            // 如果正则表达式中没有分组,使用返回值[0]得到匹配字符串
            // 如果有分组,使用返回对象[i] 访问第i组
            // 但是这个匹配只匹配一次
            var str = "112233abc45678defg001234567df";
            // var regex = /(\d)(\d+)(\d)/;
            // var regex = /\d+/;
            // var m = regex.exec(str);
            
            
            // 如果需要循环匹配,将字符串中所有满足要求的数字提取出来,
            // 需要使用全局模式,并且每次执行exec提取一个,
            // 在执行exec提取下一个,直到提取完毕返回null
            
            //
            var regex = /\d+/g;
            /*
            var m = regex.exec(str);  // 112233
            alert(m[0]);
            m = regex.exec(str);        // 45678
            alert(m[0]);
            m = regex.exec(str);        // 001234567
            alert(m[0]);
            m = regex.exec(str);        // null
            alert(m === null);
            */
            var arr = [];
            var m;
            do
            {
                m = regex.exec(str);
                if(!!m) {
                    arr[arr.length] = m[0];
                }
            }
            while(!!m);

//事件兼容
onmousemove = function(e) {
                    e = window.event || e;
                };
//编码解码
var res = encodeURI(str);
decodeURI(要解码的字符串);

// 在浏览器中cookie是一个字符串
            // 使用window.document.cookie给其赋值即可
            // cookie中不允许有空格中文等非法字符
            // cookie中存储的都是键值对k=v
            // 多个数据间用逗号隔开
            window.document.cookie = "jk=" + encodeURI("蒋坤");

eval("var num = 10;");  // 使用Function来代替eval



// 函数在js中一等公民
            // 具有四种身份
            // 函数、方法、构造函数、apply或call调用
            
            var f1 = function() {
                // alert("这个是函数调用");
                alert(this);
            };
            // f1();
            
            var o = {name:"赵建宇"};
            o.say = function() {
                // alert("这个是方法调用模式");
                // alert(this.name);
                alert(this);
            };
            
            // o.say();
            
            // o.say = f1;
            
            // o.say();
            // 在方法调用模式中 this 表示当前对象
            // 函数调用模式中也有this,指全局对象(window)
            
            // f1();
            // o.say();
            
            // o.say = f1;
            // o.say();
            // 在闭包中有时会需要临时使用一个函数执行一个比较复杂的操作
            var o = {
                name : "赵建宇"
                , say : function() {
                    // 方法  this就是o
                    var that = this;
                    
                    (function() {
                        // 处理一些较为复杂的操作,又要使用到这个对象
                        alert("这个是" + that);
                        
                    })();
                }
            }
            o.say();



Function.apply(obj,args)方法能接收两个参数

Function.apply()在提升程序性能方面的技巧

obj:这个对象将代替Function类里this对象

args:这个是数组,它将作为参数传给Function(args-->arguments)

function getMax2(arr){
    return Math.max.apply(null,arr);
}


 

posted on 2015-06-12 12:04  !无名之辈  阅读(174)  评论(0)    收藏  举报