美文网首页
js高级程序设计阅读摘录1

js高级程序设计阅读摘录1

作者: day_day_up | 来源:发表于2017-07-24 15:12 被阅读0次
    1. typeof获取未定义的变量也为undefined
    var message; // 这个变量声明之后默认取得了 undefined 值
    // 下面这个变量并没有声明
    // var age
    alert(typeof message); // "undefined"
    alert(typeof age); // "undefined" 
    
    2.typeof判断数组类型的缺陷
    typeof([]) //object
    

    第一钟解决方案
    [] instanceof Array //适用场景限制 只适用在与数组初始化相同的环境下才有xiao
    common deals
    Object.prototype.toString.call([]) //无限制 jq $.type源码也是这样实现的。

    3.自动转换为boolean

    建议通过!!a方式,===和!== 避免弱类型转换

    image.png
    4.NaN

    NaN 本身有两个非同寻常的特点。首先,任何涉及 NaN 的操作(例如 NaN/10)都会返回 NaN,这
    个特点在多步计算中有可能导致问题。其次,NaN 与任何值都不相等,包括 NaN 本身。例如,下面的代
    码会返回 false:

    alert(NaN == NaN); //false 
    alert(isNaN(NaN)); //true
    alert(isNaN(10)); //false(10 是一个数值)
    alert(isNaN("10")); //false(可以被转换成数值 10)
    alert(isNaN("blue")); //true(不能转换成数值)
    alert(isNaN(true)); //false(可以被转换成数值 1)
    
    5.Number()、parseInt()和 parseFloat()
    var num1 = Number("Hello world!"); //NaN
    var num2 = Number(""); //0
    var num3 = Number("000011"); //11
    var num4 = Number(true); //1 
    

    用 parseInt()转换空字符串会返回 NaN(Number()对空字符返回 0)。如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非数字字符。例如,"1234blue"会被转换为 1234,因为"blue"会被完全忽略。类似地,"22.5"会被转换为 22,因为小数点并不是有效的数字字符。

    相关文章

      网友评论

          本文标题:js高级程序设计阅读摘录1

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