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