用void 0代替undefined
来源:互联网 发布:centos 生成uuid 编辑:程序博客网 时间:2024/05/02 04:49
为什么要用void 0代替undefined?
因为undefined
在javascript中不是保留字。也就是说你可以给undefined赋值:
function changeUndefined() { var undefined = 'hello world' console.log(undefined); //'hello world'}
我们可以在一个局部作用于中改变undefined的值,全局环境下不可以。
因此,我们用void 0 代替undefined便成了通用准则。
在coffeeScript和underscore中都是通过void 0 来代替undefined。
void 0 的其他应用
除了取undefined外,void还有什么其它用处吗?
还有一个常见的功能,填充href。下面是一个微博截图,它的转发, 收藏, 讨论都是超链接,但是用户并不希望点击它们会跳转到另一个页面,而是引发出一些交互操作。
理论上而言,这三个超链接都是没有URL的,但如果不写的话,呵呵,点击它会刷新整个页面。于是便用上了href=”javascript:void(0)的方式,确保点击它会执行一个纯粹无聊的void(0)。
另一种情况是,如果我们要生成一个空的src的image,最好的方式似乎也是src=’javascript:void(0)’,参见StackOverflow上的这个问题:What’s the valid way to include an image with no src?
总结
void有如下作用:
- 通过采用void 0取undefined比采用字面上的undefined更靠谱更安全,应该优先采用void 0这种方式。
- 填充的href确保点击时不会产生页面跳转; 填充的src,确保不会向服务器发出垃圾请求。
阅读全文
0 0
- 用void 0代替undefined
- js中用 void 0 代替 undefined
- void 0 或者 undefined
- void 0 与 undefined
- void 0 和 undefined
- underscore.js中为什么用void 0来验证undefined
- Undefined symbol: 'CEikLabel::CEikLabel(void)
- warning: deleting 'void *' is undefined
- warning: deleting 'void *' is undefined
- js 代替 <a href="javascript void(0)" onclick="openWin(3,this)"></a>
- javascript js undefined null 0 false void(0) NaN 空字符串 比较 区别
- Effective Modern C++ 条款11 用deleted functions代替private undefined的做法
- JS魔法堂:从void 0 === undefined说起
- JS魔法堂:从void 0 === undefined说起
- Void运算符 与 undefined类型
- (*void (*) () ) 0) ();
- (void*)0
- void 0
- 火力网加强版(difficult) SSL_1124 (最大匹配)
- python 命令行套件 & mesos http-api调用
- 38条PHP优化代码!让你的程序更简洁!
- jenkins集群搭建配置
- 一天学一些
- 用void 0代替undefined
- [LeetCode] 193. Valid Phone Numbers
- Linux之vi三种模式常用操作的学习
- 个人站长十忌
- js中 instanceof 运算符
- poj2104 K-th Number【主席树模板】
- Hibernate 笔记 HQL查询:条件查询,聚集函数,子查询,导航查询
- java获得当前线程的名称
- 偶得一前端面试题,作答如下,欢迎大佬review