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 相关文章推荐
js相册效果代码(点击创建即可)
Apr 16 Javascript
javascript中处理时间戳为日期格式的方法
Jan 02 Javascript
js检验密码强度(低中高)附图
Jun 05 Javascript
JavaScript跨平台的开源框架NativeScript
Mar 24 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
Aug 06 Javascript
jquery设置表单元素为不可用的简单代码
Jul 04 Javascript
基于jPlayer三分屏的制作方法
Dec 21 Javascript
jQuery实现可移动选项的左右下拉列表示例
Dec 26 Javascript
Angularjs上传文件组件flowjs功能
Aug 07 Javascript
浅谈使用React.setState需要注意的三点
Dec 18 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
Sep 11 Javascript
如何使用webpack打包一个库library的方法步骤
Dec 18 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 类商品秒杀计时实现代码
2010/05/05 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
PHP如何将XML转成数组
2016/04/04 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
Python获取网页上图片下载地址的方法
2015/03/11 Python
在CMD命令行中运行python脚本的方法
2018/05/12 Python
python实现自动登录后台管理系统
2018/10/18 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
Python logging模块进行封装实现原理解析
2020/08/07 Python
Python 实现一个简单的web服务器
2021/01/03 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
使用HTML5做个画图板的方法介绍
2013/05/03 HTML / CSS
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
英国花园家具中心:Garden Furniture Centre
2017/08/24 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
技校生自我鉴定范文
2013/09/26 职场文书
女生节标语
2014/06/26 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
高校教师个人工作总结2014
2014/12/17 职场文书
客房领班岗位职责
2015/02/11 职场文书
对外汉语教师推荐信
2015/03/27 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
python标准库ElementTree处理xml
2022/05/20 Python