void 0 与 undefined
偶然看到一个问题:为什么有的编程规范要求用 void 0 代替 undefined?
如果不知道这个答案的小伙伴,第一反应就要问void 0是什么鬼?
void 0
void是JavaScript的一个操作符,而void 0会返回undefined,实验出真知,可以在浏览器试验一下
console.log(void ) // undefined
console.log(void === undefined) // true
可以看出,void 0跟undefined是一样的,所以用void 0 代替undefined是完全可行的。但是为什么呢?
why
大家可以去MDN上了解一下undefined的定义:undefined是全局对象的一个属性,也就是说,它是全局作用域中的一个变量,undefined的最初值就是原始数据类型undefined。
注: ES5之后的标准中,规定了全局变量下的
undefined值为只读,不可改写的,但是局部变量中依然可以对之进行改写。
function changeUndefined () {
var undefined = 1;
console.log(undefined);
}
changeUndefined(); //
而void 0无论什么时候都是返回undefined,这样来看,使用void 0来代替undefined就比较稳妥,不会出错。
void 0 与 undefined的更多相关文章
- 【跟着子迟品underscore】从用 `void 0` 代替 `undefined` 说起
Why underscore 最近开始看 underscore源码,并将 underscore源码解读 放在了我的 2016计划 中. 阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多 ...
- 为什么js中要用void 0 代替undefined
这个是Backbone.js中的一句源码 if (callback !== void 0 && 'context' in opts && opts.context == ...
- 为什么有的编程规范要求用 void 0 代替 undefined
Undefined Undefined 类型表示未定义,它的类型只有一个值,就是 undefined. 任何变量在被赋值前它的值都是 undefined,但是在 JavaScript 引擎中,unde ...
- js 用 void 0 替代 undefined
underscore 源码没有出现 undefined,而用 void 0 代替之.为什么要这么做?我们可以从两部分解读,其一是 undefined 哪里不好了,你非得找个替代品?其二就是替代品为毛要 ...
- void 0 或者 undefined
Problem 在检查一个值是否为undefined的时候.你们是假设去測试的? 要是之前的我会这样子測试 function isUndefined(obj){ return obj === unde ...
- 你真的知道为什么要使用void(0)代替undefined吗?
我们平时用到的\(\color{#FF3030}{undefined}\)只是\(\color{#FF3030}{window}\)对象下的一个属性. Object.getOwnPropertyDes ...
- undefined 与void 0
参考:https://segmentfault.com/a/1190000000474941 Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值.void 操作符用法 ...
- JS - What does `void 0` mean?
语法 void expression // or void(expression) MDN的描述 能向期望一个表达式的值是 undefined 的地方插入会产生副作用的表达式.也就是为了避免产生某种副 ...
- 源码学习之void 0
今天看源码的时候看到 void 0 这样的写法,平时在业务代码里基本没有这样的写法,于是学习了一下. 在控制台运行了一下void 0,得到返回值是undefined. 在MDN上搜了一下void,了解 ...
随机推荐
- iOS:如何让xib同时兼容支持iOS6和iOS7
做法如下: 1. 取消xib的Use Autolayout属性的勾选: 2. 将xib中每一个子控件(没错,每一个控件,包括UIButton.UILabel等等),将它们的Y Frame的值全部增加2 ...
- Oracle 自己主动内存管理 SGA、PGA 具体解释
ASMM自己主动共享内存管理: 自己主动依据工作量变化调整 最大程度地提高内存利用率 有助于消除内存不足的错误 SYS@PROD>show parameter sga NAME ...
- POJ-2201-Cartesian Tree(笛卡尔树)
Description Let us consider a special type of a binary search tree, called a cartesian tree. Recall ...
- HDU 4405 Aeroplane chess (概率DP求期望)
题意:有一个n个点的飞行棋,问从0点掷骰子(1~6)走到n点须要步数的期望 当中有m个跳跃a,b表示走到a点能够直接跳到b点. dp[ i ]表示从i点走到n点的期望,在正常情况下i点能够到走到i+1 ...
- POJ2599 A funny game (图博弈)
题目链接:传送门 题意: 给定一个图,两个人从起点出发,轮流开飞机.当离开这个点后这个点 就不能使用了.假设轮到谁了谁不能飞了就输了. 必败状态非常好找,当一个人在位置s的时候与这个点相连的没有点能用 ...
- 大规模的I/O流中有效识别大数据并增强时间局部性
一篇热数据识别存储外文翻译,本文主要在讲思想 原文题目: HDCat: Effectively Identifying Hot Data in Large-scale I/O Streams ...
- Openstack能解决这些问题吗?请各位大侠一起来讨论
1.10万规模的虚拟机,每一个虚拟机能够在不论什么一个计算节点上启动,该怎样做?计算,存储,网络都是怎么拉通与配合的? 2.用户怎样自己定义业务网络,怎样解决网络不够用的情况?正常就4096个vlan ...
- bzoj3047:Freda的传呼机&&bzoj2125: 最短路
完结撒花!!!!!!!!!!! 最后一题填坑1A仙人掌WWWWWWW我真流弊 首先把环拆开,环中每一个点连向环的根,然后搞LCA,答案就是套路的d[x]+d[y]-d[lca]*2 然后就可以发现,其 ...
- linux ssh文件输
在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地 ...
- POJ 2418 简单trie树
Hardwood Species Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 21845 Accepted: 8551 De ...