javascrip基础——需要注意的小细节。
1.区分undefined 和null:
undefined: 表示一个对象没有被定义或者没有被初始化。
null:表示一个尚未存在的对象的占位符。
undefined类型是从null派生来的,所以他们是想等的: alert(null==undefined) //true
2.使用typeof运算符:
typeof返回的是有个字符串,不是类型,所以
if(typeof oTemp ==undefined){...} //false 应改为:
if(typeof oTemp ==’undefined‘){...} //true
typeof对各运算符返回的结果:
undefined: undefined
null: object
string: string
number: number
boolean: boolean
function: function
object: object
注意:null返回的是object, 一个没有返回值的function返回的是undefined。
3.javascript命名规范:
Camel命名法:首字母小写,接下来的单词首字母大写: var firstName;
Pascal命名法:首字母大写,接下来的单词字母大写:var FirstName;
匈牙利类型命名法:以Pascal命名法的变量前面附加一个小写字母来说明变量的类型:var sFirstName;
在javascript中用匈牙利类型命名法命名变量,使用 Camel命名法命名函数。
4.javascript中的逻辑运算符:
(1)NOT运算符(!):返回的值一定是boolean值。
如果运算数是对象, 则返回false。 如果运算数是数字0, 则返回True。 如果运算数是0以外的任何数字, 则返回false。 如果运算数是null, 则返回true。 如果运算数是NaN, 则返回true。 如果运算数是未初始化的undefined, 则返回true。 如果运算数是未定义的undefined, 则发生错误。
(2)AND运算符(&&):如果运算数都是Boolean类型的对象,那么运算规则就是如果一个是false,则返回false。
在javascript中AND 和NOT运算符的最特别的地方是运算数不一定是Boolean类型,返回的值也不一定是Boolean值,可能返回对象。
如果一个运算数是对象,另一个是Boolean值, 则返回该对象。 如果两个运算数都是对象, 则返回第二个对象。 如果某个运算数是null, 则返回null。 如果某个运算数是NaN, 则返回NaN。 如果某个运算数是未初始化的undefined, 则返回undefined。 如果运算数是未定义的unfinished, 则发生错误
alert(false && null); //false
alert(true && null); //null
alert(null && false); //null
(3)OR运算符(||):在javascript中,OR运算符的运算数不一定是Boolean类型,返回的值也不一定是Boolean值。
如果一个运算数是对象,另一个是Boolean值, 则返回该对象。 如果两个运算数都是对象, 则返回第一个对象。 如果某个运算数是null, 则返回null。 如果某个运算数是NaN, 则返回NaN。 如果某个运算数是未初始化的undefined, 则忽略此操作数。 如果运算数是未定义的unfinished, 则发生错误