为什么用「void 0」代替「undefined」
undefined 有什么问题
- 因为 undefined 不是保留字(Reserved Word),它只是全局对象的一个属性,在低版本的IE浏览器中会被重写。
var undefined = 10;// undefined -- chrome
// 10 -- IE 8
alert(undefined);
复制代码
- 在局部作用域中 undefined 还是可以被重写
(function() {var undefined = 10;// 10 -- chromealert(undefined);
})();
复制代码
为什么要用 void 0 代替
MDN 定义: The void operator evaluates the given expression and then returns undefined.
意思是说 void 运算符可以对给定的表达式求值,并且无论后面跟的是什么,都是返回 undefined,所以说不论是void 0 还是void 1都是可以的,更重要的是void不能被重写。
JavaScript URIs
当用户点击一个javascript: URI
时,它会执行URI中的代码,然后用返回的值替换页面中的内容,除非返回的事undefined。
<a href="javascript:void(0);">这个链接点击之后不会做任何事情,如果去掉 void(),点击之后整个页面会被替换成一个字符 0。
</a>
<p> chrome中即使<a href="javascript:0;">也没变化,firefox中会变成一个字符串0 </p>
<a href="javascript:void(document.body.style.backgroundColor='green');">点击这个链接会让页面背景变成绿色。
</a>
复制代码
注意,虽然这么做是可行的,但利用 javascript: 伪协议来执行 JavaScript 代码是不推荐的.
转载于:https://juejin.im/post/5c8a5798e51d4556d04c1636
为什么用「void 0」代替「undefined」相关推荐
- “ void 0”是什么意思? [重复]
本文翻译自:What does `void 0` mean? [duplicate] This question already has answers here : 这个问题已经在这里有了答案 : ...
- JS中的void 0是什么意思?
void 0 的意思就是undefined; 查阅资料说存在的意思是相对于undefined, 字节数变小了, 节省内存, 个人感觉主要是装逼用; 控制台打印 void 0 === undefined ...
- 你搞清楚「NULL」、「0」、「'0'」、「0」「\0」了吗?
我们先讨论NULL,平时使用指针的时候,会经常遇见这个家伙,这个家伙的值是是这样定义的 #define NULL 0 或者 #define NULL (void *)0 我们看一下下面这段代码 #in ...
- SOME/IP协议详解「2.0·服务化通信概述」
SOME/IP协议详解「2.0·服务化通信概述」 点击返回雪云飞星的SOME/IP协议详解「总目录」 SOME/IP协议详解「2.0·服务化通信概述」 1 SOME/IP服务的组成 2 Method| ...
- 「Web2.0」的创造者表示:为Web3.0喝彩还为时尚早
题图 | Kelly Sullivan / Getty Images for LinkedIn 图/ADOBE STOCK 最近Web3.0这个概念真的太火了. 简单来说,Web3.0将是去中心化.去 ...
- 「spacingjs-1.0.7」,点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载,极速在线查看享用。 链接:https://www.aliyundrive.com/s/a87tt
「spacingjs-1.0.7」,点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载,极速在线查看享用. 链接:https://www.aliyundrive.com/s/a87tt ...
- 因为「Web3.0」,推特创始人被自己的投资人拉黑了
每一个加密世界的原住民,应该都对 Web3.0 这一概念并不陌生.Web3.0 概念通常指将所有数据和内容都留存在链上.并由用户所拥有的下一代互联网,支持者们认为这有助于我们建立一个更加去中心化.对用 ...
- 「vlc-3.0.16-win64.exe」 下载
「vlc-3.0.16-win64.exe」,点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放. 链接:https://www.aliyundrive. ...
- 三星note8android 9.0,「适配于三星S8/S8+以及Note8的Android9.0的更新已经开始了」百家号...
「适配于三星S8/S8+以及Note8的Android9.0的更新已经开始了」百家号_作者自评: 如何看待百家号Lite小程序热议话题「适配于三星S8/S8+以及Note8的Android9.0的更新 ...
最新文章
- Deep Learning | 深度学习介绍与基本概念
- 脸部细微表情识别_您可以仅使用面部表情来控制字体吗?
- C#通过工厂模式,我把一大堆if干掉了
- word2013插入excel对象报错_在Word文档中修改嵌入的Excel对象
- Python手写神经网络实现3层感知机
- 阿里iconfont使用教程
- 吴恩达机器学习作业Python实现(八):异常检测和推荐系统
- 全国各地网站备案的通过时间表
- 视频广告播放器(缓存、循环播放)
- 微软关闭Win7所有服务器,微软公布Win7彻底退役时间 将于2020年终止所有支持
- 北京圣思园_Java SE Lesson 11
- 基于java的俄罗斯方块游戏系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
- 心情手札——光头日记
- PDA 手持式智能终端和 RFID 技术
- Kafka3.0.0单机安装及简单使用
- IT傻博士-CCNA课程在线视频(1-5)
- 中国大学MOOC课程信息之数据分析可视化二
- 人员定位系统如何构筑化工企业安全生产防线
- O2O平台盈利模式有哪些
- 企业微信怎么用?企业微信怎么设置入群欢迎语?