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 相关文章推荐
用JQuery 实现AJAX加载XML并解析的脚本
Jul 25 Javascript
Javascript 中的 && 和 || 使用小结
Apr 25 Javascript
jquery在Chrome下获取图片的长宽问题解决
Mar 20 Javascript
被遗忘的javascript的slice() 方法
Apr 20 Javascript
js仿支付宝多方框输入支付密码效果
Sep 27 Javascript
理解javascript中的Function.prototype.bind的方法
Feb 03 Javascript
详解AngularJS ui-sref的简单使用
Apr 24 Javascript
ReactNative实现图片上传功能的示例代码
Jul 11 Javascript
浅谈PDF.js使用心得
Jun 07 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
May 30 Javascript
vue实现下拉加载其实没那么复杂
Aug 13 Javascript
Vue实现PC端靠边悬浮球的代码
May 09 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文本缓存类实例
2019/03/22 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
JS 面向对象之神奇的prototype
2011/02/26 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
JavaScript实现身份证验证代码
2016/02/17 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
vue2.X组件学习心得(新手必看篇)
2017/07/05 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
将RGB值转换为灰度值的简单算法
2019/10/09 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
简单谈谈Python的pycurl模块
2018/04/07 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
python中的句柄操作的方法示例
2019/06/20 Python
基于python实现模拟数据结构模型
2020/06/12 Python
python如何代码集体右移
2020/07/20 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
解决margin 外边距合并问题
2019/07/03 HTML / CSS
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
Ado与Ado.net的相同与不同
2014/12/08 面试题
AJAX的优缺点都有什么
2015/08/18 面试题
工程业务员工作职责
2013/12/07 职场文书
出国留学介绍信
2014/01/13 职场文书
运动会稿件300字
2014/02/14 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
常务副总经理任命书
2014/06/05 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
2015年个人思想总结
2015/03/09 职场文书
售后服务质量承诺书
2015/04/29 职场文书
新学期主题班会
2015/08/17 职场文书
python识别围棋定位棋盘位置
2021/07/26 Python
JavaScript架构localStorage特殊场景下二次封装操作
2022/06/21 Javascript