关于js机制

var oLi = document.getElementsByTagName(‘li‘);
          for (var m = 0; m < oLi.length; m++) {
            alert(m);
            oLi[m].onmouseover = function () {
              alert(m);
            }
          }

上来贴代码,上面2次弹出来的m值分别为0 1 2 3 4 5 和6

var oLi=document.getElementsByTagName(‘li‘);
    for(var m=0;m<oLi.length;m++){
            (function(m){
              oLi[m].onmouseover=function(){
                alert(m);
              }
            })(m)
          }

这样写才是真正的鼠标移上去的时候弹出来的是他自身的顺序

时间: 2024-08-26 07:10:34

关于js机制的相关文章

Node.js机制及原理理解初步

一.node.js优缺点 node.js是单线程. 好处就是 1)简单 2)高性能,避免了频繁的线程切换开销 3)占用资源小,因为是单线程,在大负荷情况下,对内存占用仍然很低 3)线程安全,没有加锁.解锁.死锁这些问题 php node.js 坏处就是 如何解决高并发? node使用异步IO和事件驱动(回调函数)来解决这个问题. 一般来说,高并发解决方案会提供多线程模型,为每个业务逻辑提供一个线程,通过系统线程切换来来弥补同步I/O调用的时间开销.像apache,是一个请求一个线程. 而node

Node.js机制及原理理解初步【转】

一.node.js优缺点 node.js是单线程. 好处就是 1)简单 2)高性能,避免了频繁的线程切换开销 3)占用资源小,因为是单线程,在大负荷情况下,对内存占用仍然很低 3)线程安全,没有加锁.解锁.死锁这些问题 php node.js 坏处就是 如何解决高并发? node使用异步IO和事件驱动(回调函数)来解决这个问题. 一般来说,高并发解决方案会提供多线程模型,为每个业务逻辑提供一个线程,通过系统线程切换来来弥补同步I/O调用的时间开销.像apache,是一个请求一个线程. 而node

兼容的动态载入JS【原】

兼容的动态载入JS 屌丝就是悲剧,五一还得宅家里敲代码专研技术. 说起动态载入JS,搞web的肯定不陌生,著名的YUI库就有强大的模块化的动态载入JS机制.在代码量不断庞大的今天,动态载入JS作用还是很明显的.其实这门技术已经很古老了,但是发现网络上很多资料也同样很古老.诶,没法,自立更生吧,人生总要不断积累的,更何况作为一个程序猿呢. 关于动态JS大家比较关注的无非就两点,兼容性如何?如何控制是同步还是异步?现在针对常见的4种方案来分析.前3种是异步的,最后1种是同步的. 方法1: <scri

浅谈Node.js单线程模型

Node.js采用 事件驱动 和 异步I/O 的方式,实现了一个单线程.高并发的运行时环境,而单线程就意味着同一时间只能做一件事,那么Node.js如何利用单线程来实现高并发和异步I/O?本文将围绕这个问题来探讨Node.js的单线程模型: 1.高并发 一般来说,高并发的解决方案就是多线程模型,服务器为每个客户端请求分配一个线程,使用同步I/O,系统通过线程切换来弥补同步I/O调用的时间开销,比如Apache就是这种策略,由于I/O一般都是耗时操作,因此这种策略很难实现高性能,但非常简单,可以实

兼容的动态加载JS【原】

兼容的动态加载JS 屌丝就是悲剧,五一还得宅家里写程序专研技术. 说起动态加载JS,搞web的肯定不陌生,著名的YUI库就有强大的模块化的动态加载JS机制.在代码量不断庞大的今天,动态加载JS作用还是非常明显的.事实上这门技术已经非常古老了,可是发现网络上非常多资料也相同非常古老.诶,没法,自立更生吧,人生总要不断积累的,更何况作为一个程序员呢. 关于动态JS大家比較关注的无非就两点,兼容性怎样?怎样控制是同步还是异步?如今针对常见的4种方案来分析.前3种是异步的,最后1种是同步的. 方法1:

【转】浅谈Node.js单线程模型

Node.js采用 事件驱动 和 异步I/O 的方式,实现了一个单线程.高并发的运行时环境,而单线程就意味着同一时间只能做一件事,那么Node.js如何利用单线程来实现高并发和异步I/O?本文将围绕这个问题来探讨Node.js的单线程模型: 1.高并发 一般来说,高并发的解决方案就是多线程模型,服务器为每个客户端请求分配一个线程,使用同步I/O,系统通过线程切换来弥补同步I/O调用的时间开销,比如Apache就是这种策略,由于I/O一般都是耗时操作,因此这种策略很难实现高性能,但非常简单,可以实

js中null &quot; &quot;的区别

var val=text.value; if(val=="") alert("请输入内容哦!"); var val=text.value; if(val==null) alert("请输入内容哦!"); var val=text.value; if(!val) alert("请输入内容哦!"); 这些意味着"空"的语句之前一直困扰着我,,分不清啊!!在一番了解后,写下他们的区别: val== ''   &q

H5自定义滚动插件——DeftScroll.js,可自定义滚动条

在一些项目中,用户总是要求自定义一下滚动条,以前一般用iscroll解决,但是发现iscroll有很多不方便的地方,而且也比较大,索性自己琢磨一个类似的插件吧!目的有两个:要足够小,易于上手使用:功能一定要足够实用,能满足广大H5开发者的基本需求. 介绍一下这个插件的主要功能: 1.隐藏或显示滚动条,自定义滚动条样式. 2.滚动dom的刷新:refresh: 3.滚动内容的懒加载: 4.子元素绑定tap事件: 5.支持scrolling.scrollEnd等插件内事件绑定: 6.scrollTo

JavaScript栈和堆内存,作用域

1.栈 stack"和"堆 heap": 简单的来讲,stack上分配的内存系统自动释放,heap上分配的内存,系统不释放,哪怕程序退出,那一块内存还是在那里.stack一般是静态分配内存,heap上一般是动态分配内存. 2.基本类型和引用类型: 基本类型:存放在栈内存中的简单数据段.数据大小确定,内存空间大小可以分配. 引用类型:存放在堆内存中的对象,变量中实际保存的是一个指针,这个指针指向另一个位置.每个空间大小不一样,要根据情况开进行特定的分配. 详见<Javas