chapter 1 - 10
变量没有块级作用域,在函数中任意位置定义的变量,在整个函数体都可用
函数使用变量时,先从局部作用域开始找,然后才是全局作用域
typeof(null) 返回的是object,而不是undefined
void舍弃运算数的值,返回undefined
抛出异常 if(x<0) throw new Error(“x must not be negative”); 后javascript解释器会跳转到最近的异常处理器(一直往上找,如果没找到就作为错误处理)
try/catch/finally块,finally一定会执行,就算try中间要跳走,也要等finally执行了再说
object.property 这个属性名是标识符,静态对象硬编码,比较像C++中的静态对象
object[“property”] 这个属性名是字符串值,可以动态指定,相当于关联数组
slice函数返回指定数组的一个片段,splice函数用于插入或删除数组元素
search函数返回第一个匹配的位置
replace函数是正则替换
match函数是正则匹配
exec函数是每次调用执行一次匹配尝试,index往前走
test是尝试匹配一次,返回true/false
chapter 11
function定义的函数使用词法作用域
var x = “global”;
function f() {
var x = “local”;
function g() { alert(x); }
g();
}
f(); //打印出local
Function() 创建的函数不使用词法作用域,而是当作顶级作用域编译
var y = “global”;
function constructFunction() {
var y = “local”;
return new Function(“return y”);
}
alert(constructFunction()()); //打出global
chapter 12
html解析器遇到script时,必须停止解析文档,等待script执行。如果script指定defer属性,表示这块script不生成任何文档输出,浏览器可以继续解析html文档,推迟执行script
脚本执行过程是浏览器进行HTML解析的一部分,如果一个脚本在<head>出现,那么该文档的<body>就还没有被定义,也就是说文档主体还没有被创建,脚本不能对它作操作
onload是当文档或框架被完全装载时调用的,onunload是在刚要卸载页面之前执行的(浏览器要显示新页面了)
reload()重新载入当前页面,replace()替换当前页面(history会失效)
如果一个frame设置了name,例如<frame name=”test_frame” src=”test.html”>,则兄弟框架可以用parent.test_frame引用之
document.write()动态生成文档
cookie的secure属性为真时,表示只有在https和安全协议连在一起时被传输
没有评论:
发表评论