精通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

你可能感兴趣的:(JavaScript)