javascript中我们经常会用到undefined
以及null
,这两种类型还是存在区别的。之前因为在项目中一些特殊的地方涉及到判断是undefined
还是null
,结果就出现了一些问题。
基础概念
Undefined
类型只有一个值,即undefined
。当声明的变量还未被初始化时,变量的默认值为undefined
。Null
类型也只有一个值,即null
。null
用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。
使用区别
我们使用if判断null与undefined是否相等时,if语句返回true,如果我们必须区分两种类型,可以使用===进行比较,或者通过typeof获取到数据类型,然后用==进行判断。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>首页</title>
<!--
作者:iamlisen@163.com
时间:2017-07-25
描述:引入js
-->
<script src="js/jQuery/jquery-3.2.1.js" type="text/javascript"></script>
<script src="js/bootstrap/bootstrap.js" type="text/javascript"></script>
<script src="js/bootstrap-select/bootstrap-select.js" type="text/javascript"></script>
<script src="js/bootstrap-select/defaults-zh_CN.js" type="text/javascript"></script>
<!--
作者:iamlisen@163.com
时间:2017-07-25
描述:引入css
-->
<link href="css/bootstrap/bootstrap.css" rel="stylesheet" />
<link href="css/bootstrap/bootstrap-theme.min.css" rel="stylesheet" />
<link href="css/bootstrap-select/bootstrap-select.min.css" rel="stylesheet" />
<!--
作者:iamlisen@163.com
时间:2017-07-25
描述:自定义js
-->
<script type="text/javascript">
$(function() {
$("#btn1").click(function(event) {
/* Act on the event */
alert(null==undefined);//true
});
$("#btn2").click(function(event) {
/* Act on the event */
alert(null===undefined);//false
});
$("#btn3").click(function(event) {
/* Act on the event */
alert(typeof(null) == typeof(undefined));//false
alert(typeof(null));//object
alert(typeof(undefined));//undefined
});
});
</script>
</head>
<body>
<div class="panel-body">
<button type="button" class="btn btn-success" id="btn1" style="margin-top:10px">使用==判断是否相等</button>
<br/>
<button type="button" class="btn btn-danger" id="btn2" style="margin-top:10px">使用===判断是否相等</button>
<br/>
<button type="button" class="btn btn-info" id="btn3" style="margin-top:10px">使用typeof判断</button>
</div>
</body>
</html>
试一下
楼主辛苦了。