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的一个拖拽到指定区域内的效果
Sep 21 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
Jul 31 Javascript
jquery map方法使用示例
Apr 23 Javascript
JS扩展方法实例分析
Apr 15 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
Jan 08 Javascript
微信小程序 教程之WXML
Oct 18 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
Nov 17 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
Jan 18 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
Apr 05 Javascript
在Web关闭页面时发送Ajax请求的实现方法
Mar 07 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
Apr 17 Javascript
详解vue中多个有顺序要求的异步操作处理
Oct 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
php模板原理讲解
2013/11/13 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
PHP实现的策略模式示例
2019/03/20 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
Web开发之JavaScript
2012/03/29 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
jQuery内置的AJAX功能和JSON的使用实例
2014/07/27 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
2016/12/02 Javascript
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
你准备好迎接vue3.0了吗
2020/04/28 Javascript
Python中对列表排序实例
2015/01/04 Python
基于Python实现一个简单的银行转账操作
2016/03/06 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
Python列表元素删除和remove()方法详解
2021/01/04 Python
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
外企C语言笔试题
2013/11/10 面试题
四年级语文教学反思
2014/02/05 职场文书
情人节寄语大全
2014/04/11 职场文书
会议接待欢迎标语
2014/10/08 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
2015年企业新年寄语
2014/12/08 职场文书
上课迟到检讨书
2015/05/06 职场文书
初中政治教学反思
2016/02/23 职场文书
MySQL中varchar和char类型的区别
2021/11/17 MySQL