javascript 的null和undefined
来源:互联网 发布:qq游戏大厅hd网络异常 编辑:程序博客网 时间:2024/04/27 16:07
null 和 undefined 。
这两者表现极为相似
console.log(null==undefined);//true
但是不少地方还是有些不同
null 和 undefined在现代JS语义里面是有明确区别的:
null 表示一个值被定义了,定义为“空值”;
undefined 表示根本不存在定义。
所以设置一个值为 null 是合理的,如
objA.valueA = null;
但设置一个值为 undefined 是不合理的,如
objA.valueA = undefined; 。 应该直接使用 delete objA.valueA; 任何一个存在引用的变量值为undefined都是一件错误的事情。
这样判断一个值是否存在,就可以用
objA.valueA === undefined 。 不应使用 null 因为 undefined == null,而 null 表示该值定义为空值。
这个语义在JSON规范中被强化,这个标准中不存在 undefined 这个类型,但存在表示空值的 null 。在一些使用广泛的库(比如jQuery)中的深度拷贝函数会忽略 undefined 而不会忽略 null ,也是针对这个语义的理解。
自然在使用中还是有不少不同之处 console.log(5+undefined);//NAN
consol.log(5+null);//5 。 自然 使用number()函数强制转换时,得到的结果也是不同的
除此之外还有什么不同之处?可不仅仅是这样子。
<span id="test" data-belong="hah"></span>$("#test").attr("data-belong",undefined);//没有发生任何改变 data-belong 的值还是 "hah"$("#test").attr('data-belong',null);// 审查元素,我们会发现 ,data-belong这个属性值都没有了。如果一个值没有被定义,那么它的值就是undefined ,自然根据js重复定义的概念var str="hah";var str=undefined;//第二次定义,这一句实际上等于 var str;这种情况var str="hah";var str;//会直接跳过不执行。那上一种表示方法就能理解了。从这里 ,$("#test").attr("data-belong",undefined); 这一句没有执行任何操作,也就解释通了。然后再来看一下$("#test").attr("data-belong",null);//显然这和$("#test").attr("data-belong",""); 是不同的。这就遇到了一个难题 ,到底该如何显示一个属性为null 的属性值 。js的处理方式,是不显示 ,由于这个没有任何意义。
0 1
- javascript的null和undefined
- javaScript的null和undefined
- javascript 的null和undefined
- javascript null和undefined
- JavaScript null 和 undefined
- javascript的undefined和null的区别
- JavaScript的null和undefined的区别
- JavaScript 中 null 和 undefined 的区别
- JavaScript中的null和undefined的区别
- JavaScript的null和undefined区别
- JavaScript Null和Undefined的区别
- JavaScript Null和Undefined的区别
- JavaScript中null和undefined的区别
- javascript中undefined和null的区别
- JavaScript中null和undefined的理解
- javascript中undefined和null的比较
- JavaScript中null和undefined的区别
- Javascript中null和undefined的区别
- Tk的三个几何管理器
- 【Android 基础】ListView中使用ImageLoader
- Linux命令:locate
- spring-ws搭建webservice服务
- Spring Boot介绍 Spring Boot RESTfull API快速搭建
- javascript 的null和undefined
- OpenGL的glScissor示例程序
- C++ 又一个字符串分割算法
- 小程序中圆角边框的设置
- SpringMVC容器中Servlet如何调用service层接口
- 特殊文件--proc文件系统
- adb logcat命令查看并过滤android输出log
- Faster R-CNN实验记录总结
- 8953系列----在aboot中读取boot version