0 总结
本书的JS第一章有讲语法有挺多常见的坑点和原理解释很不错
第二章DOM编程讲述了挺多API
第三章事件处理机制其实对事件中的this关键字和事件传播顺序讲解还不错
第四章WebStorage本地存储例子鲜明
第五章Worker应付复杂的js操作
第六章客户端通信WebSocket挺有用,可以实现用户与用户在浏览器中互动
1. JavaScript语法
1.1 执行js代码javascript:alert(‘执行js’);
1.2 变量赋值var a = 1;//显式
a =1; //隐式
1.3 全局变量与局部变量...
var scope = "全局变量";
function test(){
alert(scope); // undefiend
var scope = "局部变量";
alert(scope); // 局部变量
}
因为全局变量被局部变量覆盖了.虽然局部变量的scope还没赋值,但是已经在方法里”占”上位置了.
但如果把局部变量的var删了,就会先输出全局变量后输出局部变量,因为没有var在方法里给局部变量”占”位置;
1.4 浮点数var a =.333
var b = a * 5;
alert(b);
得出的结果是 1.66499999999999999
所以在js中判断浮点数是否相等 建议判断两者的差值是否小于一个足够的数(例如0.0000000000001)
1.5 字符串
js中没有字符类型变量 “”与’‘一致var s ="abcdefg"
//b = "def"
b = s.slice(3, -1);
1.6 字符串的正则表达式方法中match()返回匹配的字符串(数组或null),可加/g进行全局匹配多个
search()返回匹配的索引值 单个
1.7 undefined和nullnull == undefined //true
null === undefined //false
undefined 是没设值
null则是设定了为null值
1.8 运算符//逗号运算符 取最右返回值
a = (b =5 , c = 7 , d =56) //a =56
a = void(b =5 , c = 7 , d =56) //a = undefined
1.9 typeof和instanceof
typeof 用来获得 实例类型 :typeof("123"); //string
instanceof 判断变量是否为某类的实例var a = [4,5];
alert(a instanceof Array); //true
1.10 语句
抛出异常throw new Error("用户自定义异常"); //一般用于终止程序和返回错误提示是个不错的选择;
try{
}catch(e){
alert(e.message); // "用户自定义异常"
}
for in//这回输出浏览器的所有属性,做浏览器兼容之前可以考虑看看.
for( prop_name in navigator){
document.wrti(prop_name + " : " + navigator[propname]);
}
跳出命名forouter:
for(...){
for(...){
...
continue outer;
}
}
1.11 函数
js 允许先调用函数 再定义函数
1.11.1 定义匿名函数var show_name = function(name){
alert(name);
}
show_name("K"); //K
这样的好处是什么,如果直接定义function 它实际上也是创建了一个对象
1.11.2 函数既对象var hello = function(){...};
hello instanceof Function //true;
hello instanceof Object //true;
alert(heelo) //输出函数源代码
1.11.3 调用函数方式的不同直接调用函数 返回return的值或void
new 函数 得到的都是对象 - -…….
1.11.4 this关键字.
在函数中使用this.变量 该变量就是函数的实例变量,而非局部变量,无论它在哪里.
函数可依附在类中.如没指定 则依附在winodw对象中var hello =function(){...}
window.hello();
var p = {
wark: function(){...}
}
p.wark();
1.11.5 函数中的变量有三种function Person(){
//局部变量 只能在函数里访问
var id ;
//实例属性 通过对象.访问
this.age ;
//类属性 通过Patient.name访问 与static类似
Person.name ;
}