当前位置: 代码迷 >> Web前端 >> 慎用基本部类的包装类
  详细解决方案

慎用基本部类的包装类

热度:109   发布时间:2012-11-22 00:16:41.0
慎用基本类型的包装类

浏览网页无意中看到的,条件判断时强制强其转换成Boolean型。对于JavaScript来说在需要用到Boolean时会动态转换。


var b = new Boolean(false);
if(b){
	alert(5); // 弹出
}
?
当Boolean的参数是false,0,null,undefined时,b将是一个对象,if(b)中的b将为真,后续代码会执行。因此不要这么干。

去掉 new 则是没问题的。

var b = Boolean(false);
if(b){
	alert(5); // 不会弹出
}
?
当然也可以用这种方式方便的实现类型转换,如

var a = Number('22');
typeof a; // number

var b = Boolean('null');
typeof b; // boolean

var c = String(33);
typeof c; // string
?

1 楼 笨笨狗 2010-09-02  
有new和没有new,行为是不同的(new的话返回包装对象,直接调用返回经过类型转换后的另一个“原始值”),这个在javascript权威指南的API参考部分有详细说明:)
2 楼 zhouyrt 2010-09-03  
笨笨狗 写道
有new和没有new,行为是不同的(new的话返回包装对象,直接调用返回经过类型转换后的另一个“原始值”),这个在javascript权威指南的API参考部分有详细说明:)


谢谢您的提醒。
  相关解决方案