JavaScript权威指南笔记 - 3

1. var a1 = [,,]; 0 in a1;// ->true(错误,应该是false!!!!!!!!!!!!!!!!!!!!!)
    var a2 = new Array(2); 0 in a1;// ->false

2. 每个Array对象都有length属性, 正是这个属性使Array对象与众不同。

3. 一个数组的元素的index永远不会大于或等于数组的lengt h,如a = [1, 2, 3];
a). a[100] = 100; 执行后a.length -> 101,只不过从3 - 100都是null。
b). a.length = 1; 执行后a ->[1], 后面的都被remove了。

4. Array.isArray(x); 用于判断给出的参数x是否是Array。

5.  this:作为method调用(o.f())时,是调用对象。 作为function调用时,是golbal object,但在strict mode中,在function调用中是undefined。

6. 在function中用arguments来得到传到方法里的所 有参数,改变arguments中的值也会改变原方法的值。

7. function的length属性是指其声明时期待的参数的个 数。

8. 使用 Function构造器同样可以创建方法:var f = new function("x", "y", "return x*y;");
a). 允许JS在运行时动态的创建和编译。
b). 最重要的区别是Function创建的方法不会有语义化的作用域 ,它们被视为最高层的方法来运行。
c). 尽量少用!

9. 所有的方法都是可以被调用的, 但不是所有可以被调用的对象都是方法,如:window. alert(),document. getElementById(..),RegExp()。

10. F.prototype.constructor == F//->true

11. 用类创建实例后,若类的prototype值发生变化, 那么所有的引用也会发生变化, 所有的实例都是继承同一个prototype。

12. 给对象做加量:String.prototype.trim = function(){}。甚至可以给Object做加量, 但是不推荐,因为这些加量会在for...in... 循环中被遍历。

13. 不用typeof来判断类型:
switch(x.constructor){
   case Number:
   case String:
   case Date:
}

14. x.constructor若是多重继承, 且非顶层类没有自己的constructor, 那么返回再上面的constructor,直到找到。

15. //来创建正则表达式,类似""创建string。

16. 正则表达式中特殊意义的字符:~$.*+?=!:|/\()[] {},不确定是否应该转义时,转义就没错。

17. /a*/能匹配"bbb",因为有0个a。

18. 标签://i //g  //m

19. new RegExp("\\d{5}") 等价于 /\d{5}/,在前者中\需要转义。

20. const x = 123;//x -> 123
const x = 456;//x -> 123
x = 456;//x -> 123
var x = 456;//x -> 123
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值