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);
}
浙公网安备 33010602011771号