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 实现的点击复制代码
Mar 24 Javascript
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
Mar 22 Javascript
javascript高亮效果的二种实现方法
Sep 14 Javascript
最新的10款jQuery内容滑块插件分享
Sep 18 Javascript
node.js中的fs.readFileSync方法使用说明
Dec 15 Javascript
JavaScript中的null和undefined区别介绍
Jan 01 Javascript
省市区三级联动下拉框菜单javascript版
Aug 11 Javascript
半个小时学json(json传递示例)
Dec 25 Javascript
老生常谈js中的MVC
Jul 25 Javascript
node.js微信小程序配置消息推送的实现
Feb 13 Javascript
javascript异步处理与Jquery deferred对象用法总结
Jun 04 jQuery
Weex开发之地图篇的具体使用
Oct 16 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
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
jQuery中;function($,undefined) 前面的分号的用处
2014/12/17 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
jQuery实现遍历XML节点和属性的方法示例
2018/04/29 jQuery
Vue源码解析之数组变异的实现
2018/12/04 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
python实现对输入的密文加密
2019/03/20 Python
Django用户认证系统 User对象解析
2019/08/02 Python
python实现将json多行数据传入到mysql中使用
2019/12/31 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
用python绘制樱花树
2020/10/09 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
Ajax的工作原理
2015/12/04 面试题
汉语言文学职业规划
2014/02/14 职场文书
《太阳》教学反思
2014/02/21 职场文书
学习党的群众路线对照检查材料
2014/09/29 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL