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 相关文章推荐
基于Asp.net与Javascript控制的日期控件
May 22 Javascript
jquery实现标签上移、下移、置顶
Apr 26 Javascript
js如何打印object对象
Oct 16 Javascript
JavaScript导航脚本判断当前导航
Jul 12 Javascript
AngularJS 中的事件详解
Jul 28 Javascript
vue-router 手势滑动触发返回功能
Sep 30 Javascript
React手稿之 React-Saga的详解
Nov 12 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
Apr 17 Javascript
vue实现固定位置显示功能
May 30 Javascript
vue-cli 为项目设置别名的方法
Oct 15 Javascript
Node.js实现批量下载图片简单操作示例
Jan 18 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
Jan 29 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版国家代码、缩写查询函数代码
2011/08/14 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
php 启动时报错的简单解决方法
2014/01/27 PHP
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
理解JS事件循环
2016/01/07 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
JavaScript数值千分位格式化的两种简单实现方法
2016/08/01 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
微信小程序实现拖拽功能
2019/09/26 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
2020/04/10 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
Vue实现简单购物车功能
2020/12/13 Vue.js
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
Python列表和元组的定义与使用操作示例
2017/07/26 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
python导入坐标点的具体操作
2019/05/10 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
pycharm2020.2 配置使用的方法详解
2020/09/16 Python
详解css3 flex弹性盒自动铺满写法
2020/09/17 HTML / CSS
中学教师实习自我鉴定
2013/09/28 职场文书
新闻系毕业生推荐信
2013/11/16 职场文书
医科大学生的自我评价
2013/12/04 职场文书
网页美工求职信范文
2014/04/17 职场文书
社区戒毒工作方案
2014/06/04 职场文书
房屋鉴定委托书范本
2014/09/23 职场文书
电子商务实训报告总结
2014/11/05 职场文书
银行招聘自荐信
2015/03/06 职场文书
办公室岗位职责范本
2015/04/11 职场文书
小学毕业教师寄语
2019/06/21 职场文书
八年级作文之感恩
2019/11/22 职场文书
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android