胖在一方

出得厅堂入得厨房的胖子

导航

JavaScript(六) 强制类型转换

Posted on 2008-02-13 15:34  胖在一方  阅读(1349)  评论(0)    收藏  举报
    强制类型转换,ECMAScript中可用的3种强制类型转换: 
    Boolean(value); 
    Number(value); 
    String(value);

    Boolean强制类型转换 
    当转换的值是至少有一个字符的字符串,非0数字或者一个对象,Boolean()函数将返回true. 
    如果该值是空字符串,数字0,undefinited或null,它将返回false;
    var b1=Boolean("");    //false  - empty string 
    var b2=Boolean("hi"); // true - non-empty string 
    var b3=Boolean(100); //true non-zone number
    var b4=Boolean(0);        //false zero
    var b5=Boolean(null);    // false null
    var b6=Boolean(new Object()); //true - object 
    var b7=Boolean(new Boolean("false")); //true - object 尽管他是一个new Boolean("false")
    var oBooleanObject = new Boolean(false);
    
var oResult = oBooleanObject && true ; // true 这里要计算的是oBooleanObject 本身,而不是oBooleanObject 的值(false); 因为在Boolean表达式中,所有的对象都会自动转换为 true.
    在ECMAScript中很少用到Boolean对象,即使使用,也很难理解,所以最好还是Boolean的原始值,避免发生上面的问题。    
    

    Number的强制类型转换 
    它与parseInt(),parseFloat()方法的处理方式相似.只是它转换的是整个值,而不是部分值. parseInt(),parseFloat()只转换第一个无效字符之前的字符串.         
    parseFloat("4.5.6") = 4.5; 
    Number("4.5.6") = NaN;