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 相关文章推荐
Packer 3.0 JS压缩及混淆工具 下载
May 03 Javascript
js中一个函数获取另一个函数返回值问题探讨
Nov 21 Javascript
jQuery获得内容和属性示例代码
Jan 16 Javascript
浅谈 jQuery 事件源码定位问题
Jun 18 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
Mar 05 Javascript
AngularJS 简单应用实例
Jul 28 Javascript
AngularJS基础 ng-src 指令简单示例
Aug 03 Javascript
微信小程序开发一键登录 获取session_key和openid实例
Nov 23 Javascript
js获取ip和地区
Mar 10 Javascript
详解Vuex中mapState的具体用法
Sep 28 Javascript
微信小程序 可搜索的地址选择实现详解
Aug 28 Javascript
uniapp引入支付宝原生扫码插件步骤详解
Jul 23 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判断变量的函数
2012/04/24 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
thinkphp模板用法和内容输出实例
2014/11/28 PHP
音乐播放用的的几个函数
2006/09/07 Javascript
javascript 写类方式之五
2009/07/05 Javascript
JS 时间显示效果代码
2009/08/23 Javascript
网页中的图片的处理方法与代码
2009/11/26 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
JavaScript实战之带收放动画效果的导航菜单
2016/08/16 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
canvas的神奇用法
2017/02/03 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
2017/04/13 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
numpy中loadtxt 的用法详解
2018/08/03 Python
django做form表单的数据验证过程详解
2019/07/26 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
十佳教师事迹材料
2014/01/11 职场文书
乡镇干部先进事迹材料
2014/02/03 职场文书
竞争性谈判邀请书
2014/02/06 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
《你在为谁工作》心得体会(共8篇)
2016/01/20 职场文书
JavaScript中的LHS和RHS分析详情
2022/04/06 Javascript
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python