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 相关文章推荐
ExtJS4 组件化编程,动态加载,面向对象,Direct
May 12 Javascript
js window.print实现打印特定控件或内容
Sep 16 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
Nov 07 Javascript
JavaScript中的数值范围介绍
Dec 29 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
Mar 23 Javascript
Javascrip实现文字跳动特效
Nov 27 Javascript
javaScript嗅探执行神器-sniffer.js
Feb 14 Javascript
JavaScript简单计算人的年龄示例
Apr 15 Javascript
vue组件初学_弹射小球(实例讲解)
Sep 06 Javascript
vue页面切换项目实现转场动画的方法
Nov 12 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
Jan 02 Javascript
ES5和ES6中类的区别总结
Dec 21 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排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
javascript之dhDataGrid Ver2.0.0代码
2007/07/01 Javascript
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
vue实现文字加密功能
2019/09/27 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
微信小程序实现首页弹出广告
2020/12/03 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
以windows service方式运行Python程序的方法
2015/06/03 Python
python中os模块详解
2016/10/14 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
python检测IP地址变化并触发事件
2018/12/26 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
Bloomingdale’s阿联酋:选购奢华时尚、美容及更多
2020/09/22 全球购物
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
毕业欢送会致辞
2015/07/29 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
python如何进行基准测试
2021/04/26 Python
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang
Mysql 文件配置解析介绍
2022/05/06 MySQL