JavaScript权威指南笔记(2)

见104页

标签语句
类似C语言goto,不常用,使用方法不熟悉
见106页

continue语句在不同循环体中不同的表现行为
while 判断开始的循环表达式
do/while 判断结尾的循环表达式
for 先计算自增表达式,再判断循环表达式
for/in 遍历下一个属性名
见108页5.6.3

throw的向上传递
见110页5.6.5下

finally执行问题
只要try语句中有一部分代码执行了,finally就会执行。就算try中使用了return,continue,break也是如此

利用try/finally使while循环模拟for循环(无法完美实现)
见112页下

with语句
将对象添加到作用域链的头部,不建议使用
见113页5.7.1

debugger
设置程序断点,用于程序调试(作为ACMer)
见114页5.7.2

“use strict”
使用严格模式
严格模式区别(前三条非常重要):
1.禁止使用with语句
2.所有变量都要先声明
3.调用的函数(不是方法)中的this为undefined
4.通过call和apply来调用函数时,this就是传入的第一个参数
其余见115页中
------------------------------------------------国庆期间 结束--------------------------------------------------------------------------- 

------------------------------------------------16.10.11 开始--------------------------------------------------------------------------- 

对象的属性名如果为保留字(ES3)/有空格/有-连字符的话必须用引号引起来

最后一个属性后的逗号将忽略,ES3中大部分实现中也可以,但是在IE中报错。

见120页中下

 

创建对象的三种方法:

1、var o1 = {};

2、var o2 = new object();

3、var o3 = Object.create(Objecet.prototype);

这三种方法创建出来的对象都是一样的,都是继承自Objecet.prototype。

是不一样的。

其中2和3方法都可以指定原型对象.

var p = {x:1}

var o2 = new object(p);

var o3 = Object.create(p);

见121页6.2.1

------------------------------------------------16.10.11 结束--------------------------------------------------------------------------- 

------------------------------------------------16.10.13 开始--------------------------------------------------------------------------- 

对象的属性的赋值操作会首先检查原型链,如果原型链中有,并且是只读的,那么赋值操作就是不允许的。否则,就在原始对象(不是原型链上的)添加新的属性或者对已有的属性赋值。

在查询属性时才会体会到继承的存在,而设置属性则和继承无关。

见125页下

 

给对象o设置属性p失败的场景:

1、o中的属性p是只读的。

2、o中的属性p是继承属性,而且是只读的。

3、看不懂,参见6.8.3

见127页中

126页6.2.3的上面有一段看不懂,参见6.6,以后回来再看。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/0c0315b1d5014578b6e4d7ccca03f611.html