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 相关文章推荐
让getElementsByName适应IE和firefox的方法
Sep 24 Javascript
Extjs实现进度条的两种便捷方式
Sep 26 Javascript
js arguments,jcallee caller用法总结
Nov 30 Javascript
jquery实现翻动fadeIn显示的方法
Mar 05 Javascript
简介AngularJS的HTML DOM支持情况
Jun 17 Javascript
利用JavaScript脚本实现滚屏效果的方法
Jul 07 Javascript
javascript基本算法汇总
Mar 09 Javascript
JavaScript函数节流概念与用法实例详解
Jun 20 Javascript
JavaScript中的冒泡排序法
Aug 03 Javascript
解决layer.prompt无效的问题
Sep 24 Javascript
解决vant的Toast组件时提示not defined的问题
Nov 11 Javascript
js实现缓动动画
Nov 25 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版网站缓存加快打开速度的方法分享
2012/06/03 PHP
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
PHP中的Memcache详解
2014/04/05 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
PHP 8新特性简介
2020/08/18 PHP
用jscript启动sqlserver
2007/06/21 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
Javascript操作URL函数修改版
2013/11/07 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
vue 权限认证token的实现方法
2018/07/17 Javascript
每天学点Vue源码之vm.$mount挂载函数
2019/03/11 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
Node.js 中判断一个文件是否存在
2020/08/24 Javascript
OpenLayers实现图层切换控件
2020/09/25 Javascript
python的id()函数解密过程
2012/12/25 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
Python reduce函数作用及实例解析
2020/05/08 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
英国假发网站:Hothair
2018/02/23 全球购物
Python如何实现单例模式
2016/06/03 面试题
研发工程师的岗位职责
2013/11/18 职场文书
计算机专业学生的自我评价
2013/12/15 职场文书
企业年检委托书范本
2014/10/14 职场文书
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫
python通过新建环境安装tfx的问题
2022/05/20 Python