数据类型总结——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的时候,我们就知道被检测的变量是还未声明,而不是尚未初始化。
数据类型总结——null和undefined的更多相关文章
- JavaScript数据类型 typeof, null, 和 undefined
JavaScript 数据类型 在 JavaScript 中有 5 种不同的数据类型: string number boolean object function 3 种对象类型: Object Da ...
- js中NAN、NULL、undefined的区别
NaN:保留字(表明数据类型不是数字) undefined:对象属性或方法不存在,或声明了变量但从未赋值.即当你使用了对象未定的属性或者未定义的方法时或当你声明一个变量,但你确从未对其进行赋值,便对其 ...
- 细说Javascript之null、undefined和NaN
首先简单介绍一下Javascript中的数据类型,Javascript中的数据类型有undefined,boolen,number,string和object等5种,前4种是原始类型,第5种是引用类型 ...
- tips null和undefined的区别
tips null和undefined的区别 1.undefined类型 undefined类型只有一个值,即特殊的undefined.在使用var声明变量但未对其加以初始化时,这个变量的值就是und ...
- Javascript null和undefined
Javascript的数据类型包括数字.字符串.布尔值.null.undefined和对象.其中null和undefined是两种特殊的原始类型,很容易混淆.今天就来剖析一下null和undefine ...
- JS中null与undefined的区别
1.typeof操作符 用来检测变量的数据类型 例:typeof 3.14 //返回number typeof [1,2,3] //返回object 2.null 只有一个值的特殊类型,表示一个空对 ...
- JavaScript 进阶(五)易混淆概念null vs undefined, == vs ===, string vs String
先看一段代码 var foo = {} foo.a = null alert(foo.a == null) //true alert(foo.a === undefined) //false ...
- JavaScript中Null和Undefined的深渊
探索JavaScript中Null和Undefined的深渊 当讨论JavaScript中的原始数据类型时,大多数人都知道的基本知识,从String,Number到Boolean.这些原始类型相当简单 ...
- JavaScript中null和undefined
JavaScript的数据类型大体分为两类:原始类型和对象类型.其中,原始类型包括数字.字符串和布尔值.此外,JavaScript中还有两个特殊的原始值:null(空)和undefined(未定义), ...
随机推荐
- 【例题 8-13 UVA - 11093】Just Finish it up
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 尺取法. 假设现在取[l..r]这一段. 然后发现累加的和小于0了. 那么方法只能是不走l..l+1这一段了 即delta递减(p[ ...
- 将已有的Eclipse项目转化为Maven项目
将已有的Eclipse项目转化为Maven项目 我们之前在Eclipse IDE完成的Java命令行项目.Java Web项目也使用了构建工具--Ant,它帮助我们编译.运行Java源代码(无需我们自 ...
- 自己动手写SSO(单点登录)
SSO在我们的应用中非常常见,例如我们在OA系统登录了,我们就可以直接进入采购系统,不需要再登录了,这样使我们非常方便.现在网上也有很多实现方法,于是乎我也想写一个看看.我主要用到的是cookie的机 ...
- 如何通过使用fiddler对Android系统设备抓包总结
http://www.open-open.com/lib/view/open1427509907668.html
- GBX的Graph(最短路)
Problem B: Graph Time Limit: 2 Sec Memory Limit: 128 MB Submit: 1 Solved: 1 [cid=1000&pid=1&am ...
- 5.Node.js 安装配置
转自:http://www.runoob.com/nodejs/nodejs-tutorial.html Node.js安装包及源码下载地址为:https://nodejs.org/en/downlo ...
- ajax嵌套ajax 可能出现问题 的解决办法
ajax由于他的异步特性 在第一次请求中的循环中嵌套第二个ajax会数据会读不出来 第一种 描述:如果条件许可,把两次请求都放在服务端处理掉一起发回来,这些就在客户端只有一次ajax了 优点:代码放在 ...
- pycharm 配置autopep8(亲测可行)
autopep8是一个可以将Python代码自动排版为PEP8风格第三方包,使用它可以轻松地排版出格式优美整齐的代码.网络上有很多介绍如何在pycharm中配置autopep8的方案,但很多方案中还是 ...
- 第6章4节《MonkeyRunner源代码剖析》Monkey原理分析-事件源-事件源概览-翻译命令字串
在第2节中我们看到了MonkeySourceNetwork是怎样从Socket中获取MonkeyRunner发送过来的命令字串的,可是最后怎样将它翻译成事件的代码我们还没有进行分析,由于在那之前我们还 ...
- robot framework 使用三:浏览器兼容性自己主动化
robot framework 測试浏览器兼容性 上图中黄色圈的地方默认什么都不写.是firefox浏览器,写上ie就是ie浏览器了 firefox最新版本号即可.ie须要设置: 1. IE选项设置的 ...