精通Javascript读书笔记1

《精通Javascript》

Chap 1

1. 使用命名空间保护你的库。

YAHOO.util.Event.addListner(...);

Chap 2

2. 引用

多个变量能够指向同一对象。引用指向的只能是具体对象,而不是另一个引用;不允许多层引用。

但是,在执行字符串连接操作时,结果总是一个新的字符串对象,而非源字符串的修改版本。

eg1.

var object=new Object();
var objRef=obj;
obj.oneProperty=true;
alert(obj.oneProperty === objRef.oneProperty);

eg2.

var items=new Array("one","two","three");
var itemsRef=items;
items=new Array("new","Array");
alert(items!=itemsRef);

eg3.

var item="test";
var itemRef=item;
item+="ing";
alert(item!=itemRef);

 

3. 判断传入参数类型

如果没有提供参数,类型必定为undefined。

if( typeof msg == 'undefined') {...}

1) typeof语句

当变量不是object或者array类型时,这个是一个很好的解决方法。但是对于自定义对象,比如user就不能用这个方法进行类型检查,因为他只会返回object。

2) 构造函数

这一属性引用原本用来构造对象的那个函数。

// check number
if(num.constructor == String) 
     num=parseInt(num); 
//check array
if(str.constructor == Array) 
     str=str.join(',');

3) 对比 typeof 和 构造函数

变量 typeof变量 构造函数
{an:“object”} object Object
[“an”,”array”] object Array
function(){} function Function
“a string” string String
55 number Number
true boolean Boolean
new User() object User
posted @ 2010-09-20 16:59  irischan  阅读(299)  评论(0编辑  收藏  举报