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 相关文章推荐
jQuery中jqGrid分页实现代码
Nov 04 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
Apr 09 Javascript
js简单网速测试方法完整实例
Dec 15 Javascript
使用jquery.form.js实现图片上传的方法
May 05 Javascript
浅谈js里面的InttoStr和StrtoInt
Jun 14 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
Jul 04 Javascript
js实现表单提交后不重新刷新当前页面
Nov 30 Javascript
学习node.js 断言的使用详解
Mar 18 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
Jun 13 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
Sep 01 Javascript
Vue事件处理原理及过程详解
Mar 11 Javascript
微信小程序用户授权最佳实践指南
May 08 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
yii框架中的Url生产问题小结
2012/01/16 PHP
PHP读取PPT文件的方法
2015/12/10 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
Angular.Js之Scope作用域的学习教程
2017/04/27 Javascript
js脚本编写简单刷票投票系统
2017/06/27 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
利用JS判断元素是否为数组的方法示例
2021/01/08 Javascript
Python实现抓取网页并且解析的实例
2014/09/20 Python
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
python操作sqlite的CRUD实例分析
2015/05/08 Python
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
python绘制直方图和密度图的实例
2019/07/08 Python
python之yield和Generator深入解析
2019/09/18 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
python 中不同包 类 方法 之间的调用详解
2020/03/09 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
python实现双人五子棋(终端版)
2020/12/30 Python
利用css3径向渐变做一张优惠券的示例
2018/03/22 HTML / CSS
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
Lookfantastic阿联酋官网:英国知名美妆护肤购物网站
2020/05/26 全球购物
求职推荐信范文
2013/12/01 职场文书
《理想的风筝》教学反思
2014/04/11 职场文书
国家励志奖学金个人先进事迹材料
2014/05/04 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
家长对学校的意见和建议
2015/06/03 职场文书