日期:2014-05-16  浏览次数:20303 次

javascript_core阅读笔记(一)
本系列内容是阅读javascript_core的笔记,原文见http://abruzzi.iteye.com/

1.javascript中的数据类型分2种:基本类型和对象类型。其中对象类型包括:Object, Array, Function;基本类型包括:String, Number, boolean

2.所有非空对象,在boolean环境下,都会转换成true
if(""){
    alert("true");
}

这段代码不会alert true
if(new String("")){
    alert("true");
}

这段代码则会alert true

3.通常可以在JS代码中发现这样的代码:
if(datamodel.item){
//do something...
}else{
datamodel.item = new Item();
}

datamodel.item是一个对象,而if需要一个boolean型的表达式,所以这里引擎自动将对象转换为boolean类型。如果该对象非空,则转换为true,否则为false

4.变量被定义的区域即为其作用域,全局变量具有全局作用域;在函数内部的变量则具有局部作用域,在函数的外部不能直接访问。javascript中没有块作用域

5.用[]操作符和.操作符都可以取到对象中的属性,比如
var obj = {
    name : "zsd"
};
alert(obj.name);
alert(obj["name"]);


6.关于==操作符
如果操作数具有相同的类型,则如果两个操作数的值相等,则返回true,否则返回false
如果操作数的类型不同,分下列情况来判断:
null和undefined相等
其中一个是数字,另一个是字符串,则将字符串转换为数字,再做比较
其中一个是true,先转换成1(false则转换为0),再做比较
如果一个值是对象,另一个是数字/字符串,则将对象转换为原始值(通过toString()或者valueOf()方法)
其他情况,则直接返回false
1 楼 caizi12 2011-06-17  
学习了,以前这些东西不太清楚。
2 楼 lionfox 2011-06-17  
恩,继续;
null==undefined true;
null===undefined false;
3 楼 kyfxbl 2011-06-17  
已经继续了呀,这个系列有5篇博客

本系列内容是阅读javascript_core的笔记,原文见http://abruzzi.iteye.com/