JavaScript的null和undefined区别示例介绍


Posted in Javascript onSeptember 15, 2014

先说说undefined:

Javascript中的变量是弱类型的, 所以声明变量的时候只需使用var关键字即可。如果是像C这样的强类型语言, 声明变量的时候如果没有指定初始值,那么会给他一个默认值,比如int变量的默认值是0。但是在Javascript这样的弱类型语言中,没有办法确定到底该给这样的变量一个什么样的默认值,比如我声明一个变量

var v1;

是给他false还是0,或者是'' ?

因为没有类型,所以无法确定。 在Javascript中对于这种生命后没有给定初始值的变量,就给他一个undefined。不过前提是这个变量必须已经声明,如果对于没有声明过的标识符,就会出错。看看下面的代码。

vo="vo";//不使用var关键字创建的是全局变量,如果不赋值会报错,如下
//v1;//会报错
var v2;//undeifned
var v3="";//null
alert(vo);
//alert(v1);//
alert(v2);
alert(v3);

再来说说null:

Javscript有几个基本类型,Number,String,Boolean,Object。对于Object 类型的变量,他有两种情况,一种是他是一个对象的实例,另一种他是一个空引用null,熟悉类似Java这样面向对象语言的朋友应该很容易理解。对于这两种情况,他们的类型都是Object。Javascript中的变量,在给他赋值的时候,才
会确定它的类型,比如下面这样。

代码如下:

var v1 = 1; 
var v2 = true; 

alert(typeof v1); //number 
alert(typeof v2); //boolean 

v2 = new Date(); 
alert(typeof v2); //object 

v2 = "str"; 
alert(typeof v2); //string 

v2 = null; 
alert(typeof v2); //object

可以看到,null在 Javascript中代表一个特殊的Object类型的值,他用来表示空引用的概念,如果要将一个标识符声明称object类型,但是暂时不给他实例,那么就可以将它先初始化为null,以便以后使用。
不一定绝对正确,简单来说,对于所有变量,只要声明后还没有指定初始值 ,那么他就是undefined,如果是Object类型用来表示空引用的概念,那么就是用null来表示。

下面是一些补充:

null :表示无值;
undefined : 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。==运算符将两者看作相等。如果要区分两者,要使用===或typeof运算符。使用if (!object){}两者就都包含了 。

Javascript 相关文章推荐
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
Sep 06 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
Dec 31 Javascript
Bootstrap 源代码分析(未完待续)
Aug 17 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
Oct 27 Javascript
基于jquery日历价格、库存等设置插件
Jul 05 jQuery
详解vue2 $watch要注意的问题
Sep 08 Javascript
利用nvm管理多个版本的node.js与npm详解
Nov 02 Javascript
angularJS实现不同视图同步刷新详解
Oct 09 Javascript
微信小程序开发之tabbar图标和颜色的实现
Oct 17 Javascript
webpack打包html里面img后src为“[object Module]”问题
Dec 22 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
Jan 20 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
Apr 29 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
Sep 15 #Javascript
JavaScript的arguments对象应用示例
Sep 15 #Javascript
avascript中的自执行匿名函数应用示例
Sep 15 #Javascript
JavaScript function 的 length 属性使用介绍
Sep 15 #Javascript
css与javascript跨浏览器兼容性总结
Sep 15 #Javascript
一个通过script自定义属性传递配置参数的方法
Sep 15 #Javascript
一个字符串反转函数可实现字符串倒序
Sep 15 #Javascript
You might like
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
PHP使用数组实现队列
2012/02/05 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
PHP 生成N个不重复的随机数
2015/01/21 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
jQuery常用数据处理方法小结
2015/02/20 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
vue环形进度条组件实例应用
2018/10/10 Javascript
在Gnumeric下使用Python脚本操作表格的教程
2015/04/14 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
python实现控制台打印的方法
2019/01/12 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
大众服装店创业计划书范文
2014/01/01 职场文书
简历上的自我评价
2014/02/03 职场文书
高中微机老师自我鉴定
2014/02/16 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
实习护士自荐信
2014/06/21 职场文书
初一数学教学反思
2016/02/17 职场文书
详解SpringBoot异常处理流程及原理
2021/06/21 Java/Android