zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    一. js高级(1)-面向对象编程
    tips01- 定位
    h5c3 part6 flex
    h5c3 part5 background and transform
    template and pagination
    h5c3 part4
    h5c3 part3
    h5c3 part2
    h5c3 part1
    学习博客
  • 原文地址:https://www.cnblogs.com/diydyq/p/4182184.html
Copyright © 2011-2022 走看看