相关文章

  简书原文: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的时候,我们就知道被检测的变量是还未声明,而不是尚未初始化。

数据类型总结——null和undefined的更多相关文章

  1. JavaScript数据类型 typeof, null, 和 undefined

    JavaScript 数据类型 在 JavaScript 中有 5 种不同的数据类型: string number boolean object function 3 种对象类型: Object Da ...

  2. js中NAN、NULL、undefined的区别

    NaN:保留字(表明数据类型不是数字) undefined:对象属性或方法不存在,或声明了变量但从未赋值.即当你使用了对象未定的属性或者未定义的方法时或当你声明一个变量,但你确从未对其进行赋值,便对其 ...

  3. 细说Javascript之null、undefined和NaN

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

  4. tips null和undefined的区别

    tips null和undefined的区别 1.undefined类型 undefined类型只有一个值,即特殊的undefined.在使用var声明变量但未对其加以初始化时,这个变量的值就是und ...

  5. Javascript null和undefined

    Javascript的数据类型包括数字.字符串.布尔值.null.undefined和对象.其中null和undefined是两种特殊的原始类型,很容易混淆.今天就来剖析一下null和undefine ...

  6. JS中null与undefined的区别

    1.typeof操作符 用来检测变量的数据类型 例:typeof 3.14 //返回number typeof [1,2,3]  //返回object 2.null 只有一个值的特殊类型,表示一个空对 ...

  7. JavaScript 进阶(五)易混淆概念null vs undefined, == vs ===, string vs String

    先看一段代码 var foo = {} foo.a = null alert(foo.a == null)     //true alert(foo.a === undefined)  //false ...

  8. JavaScript中Null和Undefined的深渊

    探索JavaScript中Null和Undefined的深渊 当讨论JavaScript中的原始数据类型时,大多数人都知道的基本知识,从String,Number到Boolean.这些原始类型相当简单 ...

  9. JavaScript中null和undefined

    JavaScript的数据类型大体分为两类:原始类型和对象类型.其中,原始类型包括数字.字符串和布尔值.此外,JavaScript中还有两个特殊的原始值:null(空)和undefined(未定义), ...

随机推荐

  1. js02 变量数据类型

    变量 JavaScript 是一种弱类型的脚本语言 var c = 3:即变量的声明(变量使用之前必须加var声明,编程规范) 变量的命名规则! 1.变量命名必须以字母或是下标符号”_”或者”$”为开 ...

  2. golang 建临时文件目录以及删除

    package main import ( "fmt" "os" "path/filepath" "strings" ) ...

  3. BZOJ2160: 拉拉队排练(Manacher)

    Description 艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了.拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛.所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训 ...

  4. CSRF Failed: Referer checking failed - no Referer

    postman模拟登录出了这个错误,其实看标题就知道大概是怎么回事,网上大概找了办法,也没说到位,所以干脆自己找源码了. 问题很明显就是出在 CSRF 上,理所当然去查看 CsrfViewMiddle ...

  5. STM32之CAN通讯接收过滤器过滤分析

    一.前言 学习了CAN通讯,底层的东东CAN控制器已经帮你处理完成,也就是CAN通讯协议已经做好,你按协议格式往对应的位扔数据发送就好,所以使用CAN通讯,我们只需要去关心制定发送的数据间的协议,也就 ...

  6. l洛谷 P3926 SAC E#1 - 一道不可做题 Jelly

    P3926 SAC E#1 - 一道不可做题 Jelly 题目背景 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢吃蒟蒻果冻.而SOL菌也很喜欢蒟蒻果冻. 有一 ...

  7. Netty推荐addListener回调异步执行

    说明 Netty推荐使用addListener的方式来回调异步执行的结果,这种方式优于Future.get,能够更精确地把握异步执行结束的时间. 错误理解使用addListener的方式 代码如下: ...

  8. jQuery offset()函数 和 scrollTop()函数

    $(dom).offset() 方法返回或设置匹配元素相对于文档的偏移(位置).{left:100,top:100} $(dom).scrollTop() 方法返回或设置匹配元素的滚动条的垂直位置. ...

  9. Thinkphp5创建控制器

    今天我们就来创建一个控制器: <?php namespace app\index\controller; use think\Controller; class Test extends Con ...

  10. 不在JPA 的 persistence.xml 文件中配置Entity class的解决办法

    在Spring 集成 Hibernate 的JPA方式中,需要在persistence配置文件中定义每一个实体类,这样非常地不方便,2种方法可以解决此问题: 这2种方式都可以实现不用在persiste ...