《javascript权威指南》这本书就像是js界的圣经,对于大神和新手都应该是必读书。但是这本近千页的书已经厚到让人望而生畏,要通读它不仅要时间也需要毅力。为了提升自己在js语言上的深度,所以抱着工匠精神开始研读,此文包含书中实用性较强的一些知识点和代码,算做读书笔记吧~
BOM全称为Browser Object Model浏览器对象模型,也就是浏览器端的window对象及其默认属性和函数。
也就4个函数
定义一个定时器函数invoke,可定时执行或延迟执行指定函数。
function invoke(f, start, interval, end) {
if (!start) start = 0;
if (arguments.length <= 2) // 延迟执行
setTimeout(f, start);
else { // 延迟一段时间后重复执行
setTimeout(repeat, start);
function repeat() {
var h = setInterval(f, interval);
// 在end毫秒时停止重复
if (end) setTimeout(function() { clearInterval(h); }, end);
}
}
}
location.href = url;
相当于 location.assign(url);
这两种方法跳转都会留下历史纪录,而 location.replace(url)
则不会。 提取URL的搜索字符串中的参数。
function urlArgs() {
var args = {};
var query = location.search.substring(1); // 过滤掉'?'
var pairs = query.split("&");
for(var i = 0; i < pairs.length; i++) {
var pos = pairs[i].indexOf('=');
if (pos == -1) continue;
var name = pairs[i].substring(0,pos);
var value = pairs[i].substring(pos+1);
value = decodeURIComponent(value);
args[name] = value;
}
return args;
}
这个函数很常用~
主要掌握3个函数:
navigator属性用来获取浏览器信息,重要的属性有4个:
使用userAgent来识别浏览器。
//"webkit": Safari或Chrome版本号
//"opera": 版本号就是软件的版本号
//"mozilla": 版本号是Gecko
//"msie" 版本号就是软件版本
var browser = (function() {
var s = navigator.userAgent.toLowerCase();
var match = /(webkit)[ //]([/w.]+)/.exec(s) ||
/(opera)(?:.*version)?[ //]([/w.]+)/.exec(s) ||
/(msie) ([/w.]+)/.exec(s) ||
!/compatible/.test(s) && /(mozilla)(?:.*? rv:([/w.]+))?/.exec(s) ||
[];
return { name: match[1] || "", version: match[2] || "0" };
}());
这里用了jquery1.4的代码。
在正式生产环境中不建议使用以上对话框,还是自定义吧~
window.onerror = function(msg, url, line)
msg:错误描述。
url:报错的js的url。
line:发生错误的行数。
firefox中必须返回true值。
这个函数用来收集异常信息,然后回传服务器记录日志,供前端开发者调试修复bug还是很不错的~
document.getElementById("you");
相当于
window.you
注意如果和已有对象冲突则以默认对象为主,这是遗留方式,不推荐。应该算一个冷知识吧。
*open/close。open创建窗口后返回新窗口句柄,而新窗口可通过opener来调用父窗口的对象。需要注意的是:不过大部分浏览器增加了弹出窗口过滤功能,通常只有用户手动点击才会执行(广告商就是利用它来做弹出广告的)。大多数浏览器只允许关闭由自己的js代码创建的窗口。
博客: http://yalishizhude.github.io
作者:亚里士朱德