<!DOCTYPE html>结果:
<html>
<body>
<script>
var test1 = new Number();
document.write( typeof( test1 ) + "<br />" );
document.write( test1 + "<br />" );
var test2 = new Number( 1 );
document.write( typeof( test2 ) + "<br />" );
document.write( test2 + "<br />" );
var test3 = 1
document.write( typeof( test3 ) + "<br />" );
document.write( test3 + "<br />" );
</script>
</body>
</html>
object
0
object
1
number
1
------解决方案--------------------
因为它确实是一个对象啊,所以typeof没有欺骗你。
js中值分为原始值和引用值,var test3 = 1,test3是原始值,var test2 = new Number(1);test2是引用值,虽然他们的值都是1。Number类是原始值number类型的封装。
同样的还有string类型和String类封装。
------解决方案--------------------
new Number() new出来的是对象,没有给初始值,故number默认的是0