Void运算符 与 undefined类型
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);
---------------------
作者:w211
来源:CSDN
原文:https://blog.csdn.net/mpdemp/article/details/70810640
Void运算符 与 undefined类型的更多相关文章
- javascript运算符——条件、逗号、赋值、()和void运算符
× 目录 [1]条件 [2]逗号 [3]赋值[4]()[5]void 前面的话 javascript中运算符总共有46个,除了前面已经介绍过的算术运算符.关系运算符.位运算符.逻辑运算符之外,还有很多 ...
- 【跟着子迟品underscore】从用 `void 0` 代替 `undefined` 说起
Why underscore 最近开始看 underscore源码,并将 underscore源码解读 放在了我的 2016计划 中. 阅读一些著名框架类库的源码,就好像和一个个大师对话,你会学到很多 ...
- javascript运算符——条件、逗号、赋值、()和void运算符 (转载)
原文出自 作者:小火柴的蓝色理想 javascript中运算符总共有46个,除了前面已经介绍过的算术运算符.关系运算符.位运算符.逻辑运算符之外,还有很多运算符.本文将介绍条件运算符.逗号运算符. ...
- void运算符
void是一元运算符,它出现在操作数之前,操作数可以是任意类型,操作数会照常计算,但忽略计算结果并返回undefined.由于void会忽略操作数的值,因此在操作数具有副作用的时候使用void来让程序 ...
- 为什么有的编程规范要求用 void 0 代替 undefined
Undefined Undefined 类型表示未定义,它的类型只有一个值,就是 undefined. 任何变量在被赋值前它的值都是 undefined,但是在 JavaScript 引擎中,unde ...
- js之运算符其它运算符(三元运算符,逗号运算符,void运算符,typeof,delete运算符)
Javascript支持很多其它的运算符,具体如下: 一.条件运算符(?:) 条件运算符是Javascript中唯一的三个操作数的三元运算符,有时会直接称做是“三元运算符”. 基本格式:conditi ...
- html5 -js判断undefined类型
js判断undefined类型 今天使用showModalDialog打开页面,返回值时.当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined所以自作聪明判断 var reVal ...
- js判断undefined类型,undefined,null,NaN的区别
js判断undefined类型 今天使用showModalDialog打开页面,返回值时.当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined 所以自作聪明判断 ...
- js判断undefined类型,undefined,null, 的区别详细解析
js判断undefined类型 今天使用showModalDialog打开页面,返回值时.当打开的页面点击关闭按钮或直接点浏览器上的关闭则返回值是undefined所以自作聪明判断 var reVal ...
随机推荐
- Elasticsearch.Net搜索引擎初使用【客户端安装】
下载windows客户端 官方文档地址:https://www.elastic.co/guide/en/elasticsearch/client/net-api/6.x/introduction.ht ...
- CF835 C 前缀和
100*100规模上第一象限坐标系上有1e5规模的点,每个点随时间在同一个值域内(最大10)周期递增,但初始值不同,给出一个矩阵和时间询问此时范围内点的值的和. 预处理初始时刻不同权值下的二维前缀和, ...
- DevExpress 常用命令包括导出-打印-打印预览等
3.表格打印也是最常见的,打印代码如下: PrintingSystem ps = null; DevExpress.XtraPrinting.PrintableComponentLink link = ...
- [php]修改站点的虚拟目录
wamp默认的站点的目录是www的目录,可以修改appache的httpd.conf文件来修改目录,修改方法如下: 1. <Directory "D:/SoftWare/wamp/ww ...
- NYOJ 814 又见拦截导弹 (模拟)
题目链接 描述 大家对拦截导弹那个题目应该比较熟悉了,我再叙述一下题意:某国为了防御敌国的导弹袭击,新研制出来一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:它的第一发炮弹能够到达任意的高度,但是以 ...
- VC连接access
(1)首先拷贝 c:\program files\common files\system\ado\ 目录中的 msado15.dll 文件到项目中. (2)在VC中加入DLL,具体方法如下: (3)创 ...
- python作业高级FTP(第八周)
作业需求: 1. 用户加密认证 2. 多用户同时登陆 3. 每个用户有自己的家目录且只能访问自己的家目录 4. 对用户进行磁盘配额.不同用户配额可不同 5. 用户可以登陆server后,可切换目录 6 ...
- Skip List(跳跃表)原理详解与实现【转】
转自:http://dsqiu.iteye.com/blog/1705530 Skip List(跳跃表)原理详解与实现 本文内容框架: §1 Skip List 介绍 §2 Skip List 定义 ...
- java处理金证中登查询图片二进制流问题
package com.szkingdom.kess.model; import java.io.File; import java.io.FileOutputStream; import java. ...
- MySQL Table Information
show tables; --显示该数据库里的所有表show columns from 表名; --显示表字段use information_sc ...