zoukankan      html  css  js  c++  java
  • 细说Javascript之null、undefined和NaN

    首先简单介绍一下Javascript中的数据类型,Javascript中的数据类型有undefined,boolen,number,string和object等5种,前4种是原始类型,第5种是引用类型。

    在Javascript中未定义和定义未赋值的为undefined,所以不能通过undefined来判断一个变量是否已经定义,null是一种特殊的object,NaN是一种特殊的number。

    null与undefined在值上是相等的,NaN与任何值都不相等,包括NaN与自己也不相等。undefined的特征有:1.undefined属性用于存放Javascript中的undefined值;2.无法使用for和in来枚举undefined的属性;3.无法使用delete运算符来删除它;4.当试图读取对象的不存在的属性是也返回undefined。

    值为null的变量,表明该变量没有保存至或对象,也就是说没有保存有效的值,可以通过将一个变量赋值为null来清除该变量中的内容。Javascript和C++不同null和0并不相等。此外null数据类型是object,undefined的数据类型是undefined。

    总结一下:

    1.null是关键字,undefined是Global的对象的一个属性;

    2.null是空对象,没有任何方法和属性,undefined是undefined类型的值;

    3.在对象模型中,所有的对象都是Object或其子类的实例,null不是,例如一下一行代码返回false(null instanceof Object);

    4.null==undefined但是null!==undefined;

    5.运算是null和undefined都可以当做false来处理,但是null!=false且undefined!=false。

    附加:以上提到了===和==的操作,接下来,简单的了解一下这2个操作的区别。==在作比较的过程中允许进行类型转换之后再进行比较,而===不允许转换类型之后进行比较,也就是说,===在做比较的时候,只要类型不相等,则===就不成立,===的比较更加严格一点,不仅进行值比较还得进行类型比较。

  • 相关阅读:
    并行逻辑回归
    【math】梯度下降法(梯度下降法,牛顿法,高斯牛顿法,Levenberg-Marquardt算法)
    MATLAB 按条件进行加和
    MATLAB 统计不同区间中元素的个数
    MATLAB 统计元素出现的次数
    MATLAB 程序处理结果出现 NAN 问题
    Debug 路漫漫-07
    MATLAB 程序计算结果出现 复数(a+bi)问题
    关于安装 Microsoft Office
    关于推荐系统中的长尾商品
  • 原文地址:https://www.cnblogs.com/chengbing2011/p/4145177.html
Copyright © 2011-2022 走看看