前言 本文例子基于 .NET Core 3.1 的编译结果反编译得出结论,不同版本的编译器的编译结果可能不一致,因此本文仅供参考。为节省篇幅和便于阅读,大部分例子只写出编译成的IL等效的C#代码,不直接展示IL。 本文不讨论的内容: Lambda 表达式如何构建表达式树。 闭包的概念。 Lambda ...
分类:
其他好文 时间:
2020-12-17 12:28:32
阅读次数:
2
需求:table中要求点击红色单元格和点击checkbox的效果一样,最后一行点击就是全选、反选、取消选择的效果。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><style>table{width:400px;
分类:
编程语言 时间:
2018-10-14 23:07:59
阅读次数:
192
循环中使用闭包,假设我们需要在每次循环中调用循环序号for(vari=0;i<10;i++){setTimeout(function(){console.log(i);},1000);}上面的代码不会输出数字0到9,而是会输出数字10十次。当console.log被调用的时候,匿名函数保持对外部变量i的引用,此时for循环已经结束,i的值被修改成了10.为了得到想要的结果,需要在每次循环中创
分类:
其他好文 时间:
2018-05-06 17:01:42
阅读次数:
115
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="bootstrap.css"></head><body> <div class ...
分类:
Web程序 时间:
2018-05-05 14:47:26
阅读次数:
153
首先我们需要一个html结构 <div > <ul> <li>a</li> <li>a</li> <li>a</li> <li>a</li> <li>a</li> </ul> </div> 我们遍历ul 下所有的li 并添加点击事件,一般我们会在for循环里面添加点击事件,但是结果和我们所期盼不一样 ...
分类:
其他好文 时间:
2017-12-17 11:10:05
阅读次数:
164
结果:0 1 2 3 4 5 结果每间隔1S输出 setTimeOut第二个参数设定xxms后执行,第一的参数是xxms后执行什么动作。 队列的数据结构特点: 这个队列的执行时间,需要等到函数调用栈清空后才开始执行,即所有的可执行代码执行完毕后才开始执行由setTimeOut定义的操作,这些操作进入 ...
分类:
其他好文 时间:
2017-11-06 20:07:08
阅读次数:
134
for (var i = 0; i < 5; i++) { console.log(i); } for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, 1000 * i); } for (var i = 0; ...
分类:
其他好文 时间:
2017-03-29 23:49:45
阅读次数:
145
掘金上看到一个setTimeout与循环闭包的思考题。拿过来看了下,一方面了解settimeout的运行机制,还有就是js闭包的特性。关于闭包,有如下解释: 在这里写一点我对闭包的理解。理解闭包的关键在于:外部函数调用之后其变量对象本应该被销毁,但闭包的存在使我们仍然可以访问外部函数的变量对象。 利 ...
分类:
其他好文 时间:
2017-03-06 01:22:30
阅读次数:
342
<script type="text/javascript"> window.onload = function(){ var aImg = document.getElementsByTagName('img'); for(var i=0;i<3;i++){ alert(i); //0,1,2 a ...
分类:
Web程序 时间:
2016-10-19 14:09:12
阅读次数:
212
个网友问了个问题,如下的html,为什么每次输出都是5,而不是点击每个p,就alert出对应的1,2,3,4,5。 <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> ...
分类:
编程语言 时间:
2016-06-21 15:51:46
阅读次数:
149