javaScript数值型与逻辑运算符注意事宜
Number数值型注意:
在将object(对象)转化为数值型与其他类型转化有区别:
如果是空的对象转化为number后为NaN(not a number)
如果创建一个对象在对象中定义的toString方法返回一个可以转化为number类型的字符换或者布尔值的时候或者就是返回一个数值的话是可以将这个对象转化为一个number类型的
例如:
var ob={
toString:function(){
// return false;
// return '123';
return 123;
}
};
alert(isNaN(ob));
parseInt方法可以将为数字+字符格式的字符串转化为一个数值型也可以转化非十进制的数值,需要注意的是该方法传递需要转化的参数必须是String类型
例如:
var str = '123ob';
parseInt(str) == 123;
var str = 'ob123';
parseInt(str) == NaN;
var str = true;
parseInt(str) == NaN;
js中也是可以通过new 来创建一个类型变量
在创建一个object对象的时候,如果是创建一个数值的对象可以与数值型的变量进行算术运算
逻辑运算符注意:
逻辑运算符与运算中,如果第二个操作数是object,当第一个操作数返回true的时候才会返回第二个操作数
如果第一个操作数是object就直接返回第二个操作数
&是如果第一个操作数是false则不会去运行第二个操作数了。
例如:
var ob = {}& 1== 1;
var ob = (5>3) & {} == [object Object]
逻辑或的注意:
1.如果第一个操作数为object,直接返回第一个操作数。如果都是对象也是返回第一个对象
2.如果第一个操作数为false,直接返回第二个操作数
3.如果2个操作数都是NULL、NaN、undefined就返回相应的
如果第一个操作数是true,就返回true