javascrit中undefined和null的区别详解


Posted in Javascript onApril 07, 2019

1、Undefined

Undefined 类型只有一个值,即特殊的undefined。根据工作中总结,只要有这几种情况下会出现undefined。

1.定义变量,但是没有初始化时,如var a;

2.调用某个函数时,实参个数小于形参个数时,未实参化的形参在函数调用过程中的值是undefined;

3.调用某个对象还没有添加的属性时,也会返回undefined;

var obj={} 
  console.log(obj.name);//undefined

4.调用某个没有返回值的函数,也会返回undefined;

function Person(name,age){
  this.name=name;
  this.age=age;
  }
  var p=Person("李四",23);//此时的p=undefined;

5.对 未初始化的变量 执行 typeof 操作符会返回 undefined 值;

6.对 未声明的变量 执行 typeof 操作符同样也会返回 undefined 值。

var message; // 这个变量声明之后默认取得了 undefined 值 
  //未初始化的变量
  alert(typeof message);  // "undefined" 
  //未申明的变量
  alert(typeof age);   // "undefined"

2、Null 类型

是第二个只有一个值的数据类型,这个特殊的值是 null。从逻辑角度来看,null值表示一个空对象指针,要意在保存对象的变量还没有真正保存对象。而这也正是使用 typeof 操作符检测 null值时会返回"object"的原因。这几种情况下会出现null的情况

1、手动设置变量的值或者对象某一个属性值为null(在初始化对象时,手动设置对象为null。在作用域中不再需要使用某个对象时,把null赋值给那个变量解除引用,以释放内存)

2、在javascript的DOM元素获取中,如果没有获取到指定的元素对象,结果一般是null。

var d=document.getElementById("d");
 console.log(d);//当没有id为"d"的标签时返回null

3、Object.prototype._proto_的值也是null。(每一个对象都有__proto__属性,指向对应的构造函数的prototype属性,但是因为Object是所有类的基类,其没有对应的构造函数,所有Object.prototype._proto_值为空);

console.log("a".__proto__);
  //指向的是String的prototype属性
  //String {"", length: 0, constructor: ƒ, anchor: ƒ, big: ƒ, blink: ƒ, …}

4、在正则捕获的时候,如果没有捕获到结果,默认也是null。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript数组使用调用方法汇总
Dec 08 Javascript
JS实现div内部的文字或图片自动循环滚动代码
Apr 19 Javascript
表单元素与非表单元素刷新区别详细解析
Nov 06 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
Sep 25 Javascript
javascript中定义类的方法详解
Feb 10 Javascript
JQuery日期插件datepicker的使用方法
Mar 03 Javascript
JavaScript之Canvas_动力节点Java学院整理
Jul 04 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
Jul 31 jQuery
如何使用VuePress搭建一个类型element ui文档
Feb 14 Javascript
微信小程序实现的picker多级联动功能示例
May 23 Javascript
使用apifm-wxapi模块中的问题及解决方法
Aug 05 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
Nov 16 Javascript
详解服务端预渲染之Nuxt(介绍篇)
Apr 07 #Javascript
vue设计一个倒计时秒杀的组件详解
Apr 06 #Javascript
js字符串处理之绝妙的代码
Apr 05 #Javascript
微信小程序自定义导航栏实例代码
Apr 05 #Javascript
Node.js事件的正确使用方法
Apr 05 #Javascript
利用Node.js如何实现文件循环覆写
Apr 05 #Javascript
详解JavaScript栈内存与堆内存
Apr 04 #Javascript
You might like
PHP页面间传递参数实例代码
2008/06/05 PHP
PHP中for与foreach的区别分析
2011/03/09 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
向左滚动文字 js代码效果
2013/08/17 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
2014/11/03 Javascript
基于Javascript实现返回顶部按钮
2016/02/29 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
Python类方法__init__和__del__构造、析构过程分析
2015/03/06 Python
基于Python List的赋值方法
2018/06/23 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
python实发邮件实例详解
2019/11/11 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
python中_del_还原数据的方法
2020/12/09 Python
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
adidas泰国官网:adidas TH
2020/07/11 全球购物
康拓普公司Java笔面试
2016/09/23 面试题
通用C#笔试题附答案
2016/11/26 面试题
中医专业职业生涯规划书范文
2014/01/04 职场文书
工作证明格式及范本
2014/09/12 职场文书
博士生专家推荐信
2014/09/26 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书
盲山观后感
2015/06/11 职场文书
六五普法心得体会2016
2016/01/21 职场文书
python b站视频下载的五种版本
2021/05/27 Python
python如何利用traceback获取详细的异常信息
2021/06/05 Python