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 相关文章推荐
Javascript 继承实现例子
Aug 12 Javascript
用jquery实现的一个超级简单的下拉菜单
May 18 Javascript
学习JavaScript设计模式之单例模式
Jan 19 Javascript
简单实现jQuery进度条轮播实例代码
Jun 20 Javascript
jquery+ajax+text文本框实现智能提示完整实例
Jul 09 Javascript
微信小程序自定义弹窗wcPop插件
Nov 19 Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 Javascript
js实现简单的打印表格
Jan 15 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
Jan 18 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
Feb 27 Javascript
vue 弹出遮罩层样式实例
Jul 22 Javascript
解决vant中 tab栏遇到的坑 van-tabs
Nov 04 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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
PHP中PDO基础教程 入门级
2011/09/04 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
解析php中session的实现原理以及大网站应用应注意的问题
2013/06/17 PHP
解析php中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
PHP中把stdClass Object转array的几个方法
2014/05/08 PHP
destoon二次开发入门示例
2014/06/20 PHP
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
javascript 全角转换实现代码
2009/07/17 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
angular将html代码输出为内容的实例
2018/09/30 Javascript
vue中使用mxgraph的方法实例代码详解
2019/05/17 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
[49:02]KG vs Infamous 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python二分查找算法的递归实现方法
2016/05/12 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
HTML5之SVG 2D入门5—颜色的表示及定义方式
2013/01/30 HTML / CSS
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
薇姿法国官网:Vichy法国
2021/01/28 全球购物
工地质量标语
2014/06/12 职场文书
政风行风建设整改方案
2014/10/27 职场文书
2016高考寄语集锦
2015/12/04 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
TS 类型兼容教程示例详解
2022/09/23 Javascript