<html>
<head>
<title></title>
<meta name="keyword" content="读书笔记-- --JavaScript王者归来">
<meta name='discription' content="读书笔记-- --JavaScript王者归来">
</head>
<body>
<script>
读书笔记-- --JavaScript王者归来
第一张 从零开始
程序设计之道无远弗届, 御晨风而返.-- --杰弗瑞.杰姆士
1.1 为啥选择js
第二章 浏览器中的javascript
可移动的盒子
function f_mdown(obj) {
currentMoveObj = obj; //当对象被按下时,记录该对象
//setCapture()可以让对象捕抓到鼠标事件,跟随鼠标做出响应
currentMoveOj.setCapture();
//设置对象定位方式为absolute,便于计算拖动位置
currentMoveObj.style.position = "absolute";
//记录鼠标按下时距离被移动物体的左上角的偏移量
//以便在移动鼠标的时候正确的计算位移
relLeft = event.x - currentMoveObj.style.pixlLeft;
relTop = event.y - currentMoveObj.style.pixelTop;
}
window.document.attachEvent("onmouseup", function() {
//releaseCapture()执行和setCapture()相反操作
currentMoveObj.releaseCapture();
currentMoveObj = null; //当鼠标释放时同事释放拖拽对象
})
function f_move(obj) {
if (cerruntMoveObj != null) {
//真正移动鼠标的时候,计算被移动物体的实际位置.
currentMoveObj.style.pixelLeft = event.x - relLeft;
currentMoveObj.style.pixelTop = event.y - relTop;
}
}
第三章 开发环境和调试方法
debuger;
第四章 javascript 核心
大小写敏感
分隔符: js解析器采用最长匹配原则, 并且在这个基础上忽略程序代码之间的空格制表符和换行符(统称分隔符)
第五章 javascript 核心
第六章 javascript 核心
第七章 javascript 核心
第八章 javascript 集合
哈希表
是根据关键码值对来进行直接访问的集合类型的数据结构
var hashTabel = { a: 1, b: 2, c: 3 };
第九章 字符串
第十章正则表达式
常用正则
var Pattern = {};
Pattern.Empty = /^[\s\n\r\t]*$/; //空串
Pattern.Int = /^[0-9]*[1-9][0-9]*$/ // 整数
Pattern.Float = /^([+-])?(0|([1-9][0-9]*))([.][0-9]+)?$/; //浮点数
Pattern.Money = /^([+-])?(0|[1-9][0-9]*)(.[0-9]{1,2})?$/; //货币
Pattern.SPhone = /^[0-9]{3-4}[-]([0-9]{6,8}([-][0-9]{1,6}))?$/ //电话号码(长号码)
Pattern.LPhone = /^[0-9]{3-4}[-][0-9]{6-8}([-][0-9]{1-6})?$/ //电话号码(短号码)
Pattern.Phone = /^[0-9]{11}$/; //手机号码
Pattern.Email = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/ //电子邮箱
Pattern.Url = /^http:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?$/
110.2 .2 特殊字符和转移序列
[...] 位于括号之内的任意字符
[ ^ ...] 不位于括号之内的任意字符
.除换行和Unicode行终止符之外的任意字符
\ w 任何ascii单子字符, 等价于[a - zA - Z0 - 9]
\ W 非任ascii单子字符, 等价于[ ^ a - zA - Z0 - 9]
\ s 任何Unicode空白符
\ S 任何非Unicode空白符
\ d任何ASCII数字, 等价于[0 - 9]
\ D 出了数字之外的任何字符, 等价于[ ^ 0 - 9]
\ b 退格直接量
10.2 .3 重复
*
表示0次或者多次重复
+
表示1次或多次的重复
?
表示0次或者1次重复
{ n } n次重复
{ m, n } m到n次重复
{ m, } 至少m次重复
exec()
var str = "420105198203091614";
var re = /\d{6}([12]\d{3})([01]\d)([0123]\d)\d{4}/;
var id = re.exec(str);
第十一章 浏览器对象
window 对象的声明周期
一个window对象在某个浏览器进程终止前总是存在的.
也就是说, 即使你关闭了某个浏览器, 这个窗口所引用的window对象依然存在,
除非这个浏览器进程已经被完全终止
open(); //打开新窗口
close(); //关闭当前窗口
write(); //把文件附加到当前打开的文档
writeln(); //把文件附加在当前打开的文档,并输出一个换行符
第十二章 文档对象模型
Document对象
状态栏: 用来向用户线束一个特定的消息
12.5 .4 克隆节点
Javascript中, DOM兑现对象是引用类型, 所以建一个DOM对象赋值给不同的变量,
拷贝的是他的引用, 而不是值
cloneNode(); //带参数表示复制节点包括内容,不带参数只复制节点不复制内容
第十三章 事件处理
将消息进行处理的行为, 被称为事件响应或者事件处理
Onabort() //图片装载被中断
Onblur() //元素失去焦点
Ocnchanges() // 元素内容变化
Onclck() //点击鼠标
Ondbclick() //双击鼠标
Onerror() //图片装载失败
Onfocus() //元素获得聚焦
onkeydown() //键盘被按下
onkeypress() //键盘被按下并释放
onkeyup(); //键盘被释放
Onoad(); //文档装载完毕
onmousedown(); //鼠标被按下
onmousemover(); //鼠标移动到元素上
onmouseup(); //鼠标被释放
onreset(); //表单被重置
onresize(); //调整窗口大小
onselect(); //选中文字
onsubmit(); //表单被提交
onunload(); //下载文档或框架
13.3 .1 起泡和捕抓--浏览器的事件传播
stopPropagation(); //阻止冒泡事件
cancelBubble(); //IE阻止冒泡事件
preventDefault(); //阻止默认事件
第十四章 级联样式表
CSS和DOM的关系
第十五章 数据存储的脚本
cookie
userData: IE为js提供了另一种存储客户端数据的手段
第十六章 同步和异步
第十七章 XML DOM和XML HTTP
第十八章 Ajax简介
xmlhttp = null;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp != null) {
xmlhttp.onreadystatechange = state_change;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
} else {
alert("")
}
function state_change() {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
} else {
}
} else {
}
}
第十九章 标准与兼容
19.2 .1 平台和浏览器的兼容性
最小公分母法
通过避开使用不兼容代码和实现上有BUG的代码来达到跨浏览器的兼容性
btn.onclick = function(event) {
event = event || window.event;
alert(event.x)
}
19.2 .2 防御性编码
在你不确定某个模块是否实现并且对应的实现没有BUG时,
遇到一些额外的编码来保证这些模块被正确运行
btn.onclick = function(event) {
event = event || window.event;
var src = event.srcElement || event.target;
alert(src.x)
}
19.2 .3 客户端探测
var isOpera = navagator.userAgent.indexOf("Opera") > -1;
.
.
.
19.2 .4 特性检测
if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("MSXML.XMLHTTP");
}
19.2 .5 实现标准
自己编写代码实现某些浏览器未能实现的标准模块, 这种方法常用语编写较大型的应用程序中
19.2 .6 适度停止运行
适度的取消一些特定的浏览器不太重要的功能
if (isMos) {
alert("不支持滤镜")
} else if (isIE) {
obj.filter.alpha = "(opacity=20)"
}
</script>
</body>
</html>