js

作者: tslling | 来源:发表于2017-08-21 09:54 被阅读0次
    1. null and undefied (PJ3.4.3)

    you should never explicitly set the value of a variable to undefined, but the same does not hold true for null. Any time an object is expected but is not available, null should be used in its place.

    Another thing, Number(null) returns 0 while Number(undefied) returns NaN.

    1. use "or" operator ("||") to set a default value, use "and" operator ("&&") to check before using. e.g.:
    var middle = stooge["middle-name"] || "(none)";
    flight.equipement && flight.equipement.model;
    
    1. isNaN
    isNaN("true") //true, Boolean to number
    isNaN("10")   //true, string "10" to 10
    

    Although typically not done, isNaN() can be applied to objects. In that case, the
    object’s valueOf() method is fi rst called to determine if the returned value can
    be converted into a number. If not, the toString() method is called and its
    returned value is tested as well. This is the general way that built-in functions
    and operators work in ECMAScript

    1. Number() vs parseInt()
    Number(null)   //0
    parseInt(null)  //NaN
    
    parseInt("070") 
    

    how strange, PJ says:

    In ECMAScript 3 JavaScript engines, the value “070” is treated as an octal literal and becomes the decimal value 56. In ECMAScript 5 JavaScript engines, the ability to parse octal values has been removed from parseInt() , so the leading zero is considered invalid and the value is treated the same as “0”, resulting in the decimal value 0. This is true even when running ECMAScript 5 in non-strict mode.

    but I tried on my chrome and and firefox, parseInt("070") just returns 70 instead of 56. So I'd better always specify the base...

    相关文章

      网友评论

          本文标题:js

          本文链接:https://www.haomeiwen.com/subject/luccdxtx.html