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选中select控件 无法设置selected的解决方法
Sep 01 Javascript
ASP.NET中AJAX 调用实例代码
May 03 Javascript
js拦截alert对话框另类应用
Jan 16 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
Jan 06 Javascript
JavaScript 模块化编程(笔记)
Apr 08 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
Nov 27 Javascript
jQuery自定义滚动条完整实例
Jan 08 Javascript
AngularJS初始化静态模板详解
Jan 14 Javascript
BootStrap table表格插件自适应固定表头(超好用)
Aug 24 Javascript
jQuery中的AjaxSubmit使用讲解
Sep 25 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
Aug 07 Javascript
在vue中使用console.log无效的解决
Aug 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
SMARTY学习手记
2007/01/04 PHP
php中使用redis队列操作实例代码
2013/02/07 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
2017/11/20 PHP
php模拟实现斗地主发牌
2020/04/22 PHP
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
2015/02/28 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
类似于QQ的右滑删除效果的实现方法
2016/10/16 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
原生js实现水平方向无缝滚动
2017/01/10 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
vue编写简单的购物车功能
2021/01/08 Vue.js
一份python入门应该看的学习资料
2018/04/11 Python
老生常谈python中的重载
2018/11/11 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
python 将有序数组转换为二叉树的方法
2019/03/26 Python
详解python中的线程与线程池
2019/05/10 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
普通大学毕业生自荐信
2013/11/04 职场文书
学生就业推荐信
2013/11/13 职场文书
厂长助理岗位职责
2013/12/27 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
升职感谢信
2015/01/22 职场文书
刑事起诉书范文
2015/05/19 职场文书
学前班教学反思
2016/02/24 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书