• JS篇 undefined的由来


    在<<Javascript 权威指南>>中,undefined常常被解释为:对应的值的缺失,对应以下四种情况:

    1. 无赋值      变量被声明了,但没有赋值时,就等于undefined。

    2. 属性不存在    引用对象中不存在属性,该属性的值为undefined。

    3. 形参未赋值    调用函数时,应该提供的参数没有提供,该参数等于undefined。

    4. 函数无返回值   函数没有返回值时,默认返回undefined。

    实际上,undefined可以被当做除primitive原始类型和object类型之外的第三种类型:

    window下的undefinded属性为undefined类型;这个类型只有一个值:undefined;

    null被当做object类型,是因为typeof null === "object";

    null instatnceof Object === false是因为null处于原型链的顶端,而不是Object.prototype原型节点的子节点;

    typeof     通过primitive,object,undefined类型判断
    instanceof  通过原型链判断

    在<<Speaking Javascript>>中,描述了设计undefined原因:

    1. 避免类型转换上的错误:当因为编程疏忽时(声明了变量,却忘记给变量赋值,会引起异常)

    Number(null)                // 0
    Number(undefined)         // NaN
    
    Boolean(null)               // false
    Boolean(undefined)         // NaN

    参考:

    编程的细节之美——undefined与null的区别    http://www.tuicool.com/articles/B7FFzez

  • 相关阅读:
    wmq的A×B Problem
    MATLAB 求系统的单位冲击响应及单位阶跃响应
    关于共享率过低的一些事
    Vue组件之间的通信
    浏览器支持ES6的import和export
    Vue axios拦截问题
    开屏倒计时
    git常用操作
    原型
    this指向问题
  • 原文地址:https://www.cnblogs.com/diydyq/p/4182184.html
Copyright © 2020-2023  润新知