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 相关文章推荐
node.js中watch机制详解
Nov 17 Javascript
javascript制作坦克大战全纪录(2)
Nov 27 Javascript
AngularJS入门教程之Hello World!
Dec 06 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
May 18 Javascript
JQuery实现鼠标滚轮滑动到页面节点
Jul 28 Javascript
jquery限定文本框只能输入数字(整数和小数)
Jan 08 Javascript
jquery datatable服务端分页
Aug 31 Javascript
JQuery中解决重复动画的方法
Oct 17 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
Nov 23 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
Oct 19 Javascript
原生JS实现pc端轮播图效果
Dec 21 Javascript
vue-cli中实现响应式布局的方法
Mar 02 Vue.js
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定时自动生成静态HTML的实现代码
2010/06/20 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
smarty模板数学运算示例
2016/12/11 PHP
PHP实现的简单路由和类自动加载功能
2018/03/13 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
2019/10/08 PHP
PHP实现简易图形计算器
2020/08/28 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
JS回调函数的应用简单实例
2014/09/17 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
vue实现日历备忘录功能
2020/09/24 Javascript
微信小程序如何获取用户头像和昵称
2019/09/23 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
用Python和MD5实现网站挂马检测程序
2014/03/13 Python
Python中的jquery PyQuery库使用小结
2014/05/13 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
详解python发送各类邮件的主要方法
2016/12/22 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
Python数字图像处理之霍夫线变换实现详解
2018/01/12 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
软件测试工程师笔试题带答案
2015/03/27 面试题
学生会离职感言
2014/02/11 职场文书
求职意向书范本
2015/05/11 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
python实现语音常用度量方法的代码详解
2021/05/25 Python
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技