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 相关文章推荐
DOM2非标准但却支持很好的几个属性小结
Jan 21 Javascript
如何设置一定时间内只能发送一次请求
Feb 28 Javascript
js实现登陆遮罩效果的方法
Jul 28 Javascript
详解JS面向对象编程
Jan 24 Javascript
js获取新浪天气接口的实现代码
Jun 06 Javascript
什么是JavaScript中的结果值?
Oct 08 Javascript
深入理解jQuery()方法的构建原理
Dec 05 Javascript
Vue实现内部组件轮播切换效果的示例代码
Apr 07 Javascript
JS尾递归的实现方法及代码优化技巧
Jan 19 Javascript
对Layer弹窗使用及返回数据接收的实例详解
Sep 26 Javascript
jQuery轮播图功能制作方法详解
Dec 03 jQuery
使用javascript解析二维码的三种方式
Nov 11 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
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
JS 显示当前日期与时间的代码
2010/03/24 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
jquery蒙版控件实现代码
2010/12/08 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
浅谈$_FILES数组为空的原因
2017/02/16 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
JS实现多选框的操作
2020/06/24 Javascript
python实现2048小游戏
2015/03/30 Python
Python中decorator使用实例
2015/04/14 Python
python 格式化输出百分号的方法
2019/01/20 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
华三通信H3C面试题
2015/05/15 面试题
社区党总支书记先进事迹材料
2014/01/24 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
学生打架检讨书
2014/10/20 职场文书