zoukankan      html  css  js  c++  java
  • 数据类型总结——null和undefined

    相关文章

      简书原文:https://www.jianshu.com/p/c3e252efe848

      数据类型总结——概述:https://www.cnblogs.com/shcrk/p/9266015.html

      数据类型总结——String(字符串类型):https://www.cnblogs.com/shcrk/p/9277107.html

      数据类型总结——Number(数值类型):https://www.cnblogs.com/shcrk/p/9277040.html

      数据类型总结——Boolean类型(布尔类型):https://www.cnblogs.com/shcrk/p/9265597.html

      数据类型总结——null和undefined:https://www.cnblogs.com/shcrk/p/9266100.html

      数据类型总结——基本包装类型:https://www.cnblogs.com/shcrk/p/9266066.html

      数据类型总结——Array(数组类型):https://www.cnblogs.com/shcrk/p/9276989.html

    大纲

      前言
      1、关于null
      2、关于undefined

    前言

      数据类型是每一种语言都需要掌握的内容,掌握每一种数据类型的使用是掌握这门语言必不可少的。而我也对数据类型写了一系列的博客,其中包含了对某一数据类型的概念的认识和理解以及常使用的方法。以下就是我对null类型和undefined类型的一些认识和理解,希望能对读者有所帮助。

    1、关于null

      1、Null类型只有一个特殊的值,那就是null,从逻辑的角度来看,null值表示一个空对象指针。
      2、如果定义的变量准备用来保存对象,那么最好将该变量初始化为null而不是其他值。这样一来,只要直接检查null值就可以知道相应的变量是否已经保存了一个对象的引用。

    if(car != null){
        //对car对象执行某些操作
    }
    

      3、实际上,undefined值是派生自null值的,因此这两者的相等性测试要返回true。

    console.log(undefined == null);//true
    console.log(undefined === null);//false
    

      4、尽管null和undefined是相等的,但是他们的用途是完全不一样的。如前所述,无论什么情况下都没有必要把一个变量的值显示的设置为undefined,可是同样的情况却不适用与null,话句话说,只要意在保存对象的变量还没有真的保存对象,就应该明确的让该变量保存null值,这样做不仅可以体现null作为空对象的指针的惯例,同时也有助于进一步区分null和undefined。

    2、关于undefined

      1、Undefined类型只有一个值,那就是undefined,使用var声明变量但并未对其进行初始化时,就会默认对其赋值,即undefined。
      2、一般而言,不存在需要显示的把一个变量的值设置为undefined的情况,因为编译器会自动为其赋这个值。字面值undefined的主要目的是用于比较,引入这个值是为了将空对象指针与未经初始化的变量区分开来,即区分null和undefined。

    var num1;
    var num2 = null;
    console.log(typeof num1);//undefined
    console.log(typeof num2);//object
    console.log(typeof numg);//undefined(需要注意的是未经定义的变量使用typeof得到的也是undefined)
    console.log(num1)//undefined
    console.log(num2)//null
    console.log(numg)//“numg”未定义
    

      3、对未经声明的和未初始化的变量执行typeof操作符都返回了undefined值,这个结果有其逻辑上的的合理性。因为这两种变量从技术角度上来看有本质上的区别,但实际上无论哪种情况也不能执行真正的操作。
      4、即便未初始化的变量会被自动赋值undefined,但是显示地初始化变量依然是明智的选择。如果能做到这一点,那么当typeof操作符返回undefined的时候,我们就知道被检测的变量是还未声明,而不是尚未初始化。

  • 相关阅读:
    Learn Goroutine
    Redis eviction policies
    Hungarian Algorithm
    Prime and Factors
    HDU 2642 Stars
    236. Lowest Common Ancestor of a Binary Tree
    Leetcode 96. Unique Binary Search Trees
    Search in Rotated Sorted Array
    ID Generator
    概率问题
  • 原文地址:https://www.cnblogs.com/shcrk/p/9266100.html
Copyright © 2011-2022 走看看