Void运算符 与 undefined类型
来源:互联网 发布:汉诺塔c语言 编辑:程序博客网 时间:2024/05/17 03:25
void 运算符 对给定的表达式进行求值,然后返回 undefined。
何为求值,就是执行之后的表达式。
我们最常见的就是
<a href="javascript: void(0)"></a> //这段代码使点击这个a标签什么都不做
为什么呢?
重点在于,不管表达式是什么,它返回的始终都是一个undefined。
顺序也很重要,先计算表达式,然后再返回。
怎么用?
1、在使用立即执行的函数表达式时,可以利用 void 运算符让 JavaScript 引擎把一个函数识别成函数表达式而不是函数声明(语句)。
void function iife() { var bar = function () {}; var baz = function () {}; var foo = function () { bar(); baz(); }; var biz = function () {}; foo(); biz();}();
普通立即执行的函数表达式都这样(function fn(){})()
,这样引擎就会解析为一个表达式。
不使用()
括起来的时候,引擎会将其解析为函数表达式,但是通过一个void
运算符就可以避免这个问题。因为void 运算符后面本来就是一个表达式。
2、判断时用作undefined的替身
之前a标签的例子就是这样使用的。
比如我们判断一个变量是不是undefined的时候
options === void 0
为什么要使用void 0来替换,不直接使用undefined来作判断?
1、因为undefined在全局变量中是一个属性,本是只读属性,但是在低版本IE的局部作用域中是可以被重新被赋值的。因为这里不安全所以使用void 来替换。
2、使用void来替换的时候,void后面必须要跟一个表达式,其实任意表达式都是可以的。既然都能满足,我们只是想得到一个稳定的undefined,那为什么不用最简短的表达式呢,void 0就应运而生了。有些地方也写作void(0);
0 0
- Void运算符 与 undefined类型
- void 0 与 undefined
- void类型与void类型指针
- Undefined类型与Null类型
- Undefined类型与Null类型
- 运算符与类型转换
- 类型、运算符与表达式
- 类型、运算符与表达式
- 类型转换与运算符
- javascript中的void运算符
- js void delete + -运算符
- void 运算符 | replace方法
- void 0 或者 undefined
- void 0 和 undefined
- void类型指针与空指针
- void类型及void*
- 运算符优先级与指针类型判断
- JavaScript类型转换与运算符
- 计算时间差值
- 整合Struts2、Hibernate4.3和Spring4.2
- oracle数据库字符集的基础知识
- 如何解决mysql5_OA服务不能启动的问题?
- 打造自己的下拉刷新库(Ultra-Pull-To-Refresh)(一)
- Void运算符 与 undefined类型
- Unity3D手游开发日记(5)
- 呼吸灯效果
- [BZOJ3456]城市规划(组合数学+容斥原理+NTT+多项式求逆)
- BottomNavigationBar和VieaPage实现滑动切换
- collect2: ld terminated with signal 9
- Java设计模式之模板方法模式
- android build 编译打印详细过程
- JDBC链接oracle12c 出现 ora-28040: no matching authentication protocol