javascript开发:javascript机制

深入理解 JavaScript 事件与事件传播机制 事件是指在浏览器中发生的特定交互或动作。鼠标事件:如click(点击)、mouseover(鼠标悬停)、mouseout(鼠标移出)等。键盘事件:如keydown(按键按下)、keyup(按键松开)等。表单事件:如submit(表单提交)、change(输入框内容改变)等。窗口事件:如load(页面加载完成)、resize(窗口大小改变)等。通过监听这些事件,开发者可以在用户与页面交互时执行相应的操作。alert('按钮被点击了!');});事件。 阅读详情

JavaScript 的事件是以一种流的形式存在的,一个事件会有多个元素同时响应。具体分为:捕获型事件 (非IE)(经@hentailing 同学提醒,IE已支持)、冒泡型事件(所有浏览器都支持)。
捕获型事件是自上而下的,而冒泡型事件是自下而上的。下面这张图说的很明了:


1.捕获型事件:

[html]  view plain  copy
  1. <html>  
  2. <body>  
  3.     <div id="div1" style="width:300px;height:300px;background-color:red;">  
  4.         #div1  
  5.         <div id="div2" style="width:200px;height:200px;background-color:yellow;margin-top:30px;">  
  6.             #div2  
  7.         </div>  
  8.     </div>  
  9. </body>  
  10. <script>  
  11.     var a = document.getElementById('div1');  
  12.     var b = document.getElementById('div2');  
  13.     a.addEventListener('click', alertID, true);  
  14.     b.addEventListener('click', alertID, true);  
  15.   
  16.     function alertID() {  
  17.         alert(this.id);  
  18.     }  
  19. </script>  
  20. </html>  

下图中id为div1和div2的两个元素都被绑定了捕捉阶段的事件处理函数:
当点击#div1(红色区域)时,应该会alert出”div1″当点击#div2(黄色区域)时,应该会先alert出”div1″,再alert出”div2″,因为在事件捕捉阶段,事件是从根元素向下传播的,#div1是#div2的父元素,自然绑定在#div1上的click事件也会先于#div2上的click事件被执行。



2.冒泡型事件:
一个典型的例子:

[html]  view plain  copy
  1. <html>  
  2. <head>  
  3. <script type="text/javascript">  
  4.     var i = 1;  
  5.     function Add(sText,objText)  
  6.     {  
  7.         document.getElementById("Console").innerHTML +=sText + "执行顺序:" + i + "<br />" + "<hr />";  
  8.         i = i + 1;  
  9.         //window.event.cancelBubble = true;   
  10.     }  
  11. </script>  
  12. </head>  
  13.   
  14.   
  15. <body onclick="Add('body事件触发<br />','body')">  
  16. <div onclick="Add('div事件触发<br />','div')">  
  17.     <p onclick="Add('p事件触发<br />','p')" style="background:#c00;">点击</p>  
  18. </div>  
  19. <div id="Console" style="border:solid 1px #ee0; background:#ffc;"></div>  
  20.   
  21.   
  22. </body>  
  23. </html>  


结果:


参考:http://www.nowamagic.net/javascript/js_EventAnalysis.php

鸿蒙Harmony开发实战:线程异步JS 机制总结 若 native 创建的其他线程必须与 JS 主线程进行通信,线程安全函数 API 提供了 native 创建的其他线程调用 JS 函数的方法。 阅读详情

相关推荐

前端开发:JS的事件循环执行机制详解

在前端开发中,涉及到JS原生的使用原理是非常重要的知识点,尤其是在实际工作过程中会遇到各种复杂的业务需求场景,以及具体开发中可能会遇到一些涉及基于JS原理的使用,这都要求开发者能够很好的了解和掌握JS原生的常用原理。JS执行是单线程的,它是基于事件循环的,那么本篇博文就来分享一下关于JS的事件循环执行机制,该内容不仅在日常前端开发中是比较重要核心的知识点,而且在前端求职面试时候面试官必考的知识点,尤其是关于异步执行代码时候的事件循环,总结记录一下,方便后期查阅使用。

全沾软贱开发攻城狮 1万+

Javascript的事件机制

第2种:在JavaScript文件中,利用元素节点的onxxx设置匿名函数为元素绑定事件。JS:语法格式:元素节点.dataset.自定义属性名(获取当前对象的自定义属性取值)nextElementSibling:返回元素节点下面的同级元素节点。firstElementChild:返回元素节点中的第一个元素节点。lastElementChild:返回元素节点中的最后一个元素节点。parentElement:返回元素节点的父元素节点。children:返回元素节点中所有的子元素节点。

Han_zeyang的博客 232

HarmonyOS鸿蒙基于Java开发: Java UI JS FA调用Java PA机制

使用兼容JS的类Web开发范式的方舟开发框架提供了JS FA(Feature Ability)调用Java PA(Particle Ability)的机制,该机制提供了一种通道来传递方法调用、处理数据返回以及订阅事件上报,支持的UI页面和组件请参考构建JS用户界面。当前提供Ability和Internal Ability两种调用方式,开发者可以根据业务场景选择合适的调用方式进行开发。对于Internal Ability调用方式的开发,可以使用js2java-codegen工具自动生成代码。

斌擎科技 1255

Javascript事件机制

事件机制事件的基础知识介绍,事件冒泡和事件捕获和DOM事件流,事件处理程序

qq_50748038的博客 389

Javascript的事件处理机制

事件(Event)是JavaScript应用跳动的心脏,也是把所有东西粘在一起的胶水。当我们与浏览器中Web页面进行某些类型的交互时,事件就发生了。事件可能是用户在某些内容上的点击、鼠标经过某个特定元素或按下键盘上的某些按键。事件还可能是Web浏览器中发生的事情,比如说某个Web页面加载完成,或者是用户滚动窗口或改变窗口大小。通过使用JavaScript,你可以监听特定事件的发生,并规定让某些事件发生以对这些事件做出响应。在漫长的演变史,我们已经告别了内嵌式的事件处理方式(直接将事件处理器放在HTML元素之内来使用)。今天的事件,它已是DOM的重要组成部分,遗憾的是,IE继续保留它最早在IE4

ArcGIS Pro 3.0实战:5分钟搞定GDB批量转SHP的Python脚本(附常见错误修复)

本文详细介绍了在ArcGIS Pro 3.0中使用Python脚本将地理数据库(GDB)中的要素类批量转换为Shapefile(SHP)格式的实战方法。文章提供了从基础到增强的完整脚本,重点解决了中文路径报错、字段名截断和属性表乱码等常见问题,并分享了错误处理与编码修复技巧,帮助用户高效、准确地完成数据格式转换与交换。

happy2的博客 766

彻底搞懂js事件执行机制

彻底搞懂js事件循环的执行机制

weixin_45032067的博客 2423

深信服 SANGFOR 设备密码恢复和配置备份恢复

、恢复密码 当我们拿到一台设备要去配置管理的时候,首先是要确认设备的登录IP,其次就是确认设备控制台登录密码。不知情的情况下如何找到设备的登录IP,请参考文档: http://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=9484 下文中提到的关于“网关升级客户端”的一些功能,也请参考此文档。 那么恢复密码,大家都知道有2种方法:U盘恢复密码、交叉线恢复密码。 1、U盘恢复密码 注意:仅恢复admin密码,不影响配置。 U盘恢复密码的前

李先生在闯荡江湖 1万+

半小时带你全面理解 JavaScript 事件机制

简介 事件是由用户或浏览器本身发起的发生在浏览器中的动作。以下示例为发生在网站上的一些常见事件: 页面完成加载 用户点击按钮 用户将鼠标悬停在下拉菜单上 用户提交表单 用户按下键盘上的键 通过编写执行事件的JavaScript响应代码,开发人员可以向用户显示消息、验证数据、对按钮单击做出反应以及许多其他操作。 本文将介绍事件处理程序、事件侦听器和事件对象。还将介绍三种不同的方式来处理事件,以及一些最常见的事件。了解事件可以帮助开发人员为用户提供更具交互性

weixin_43044226的博客 1221

基于AutoDL复现A-LOAM

Ceres solver 是谷歌开发的一款用于非线性优化的库,在谷歌的开源激光雷达slam项目cartographer中被大量使用。在autodl上面租服务器,地区我租的重庆A区的,GPU我选择的是RTX4090,基础镜像选择的是Miniconda / conda3 / 3.8(ubuntu20.04)/11.6。在AutoDL中我使用的方式是先将该数据集先下载到自己的电脑上,然后再上传到虚拟机中。用MobaXterm解决该问题!搜到的一个解决方式:该问题属于ceres版本问题,将A-LOAM下的。

m0_61281610的博客 1942

LLC谐振变换器设计实战:从工作原理到参数设计与调试

开关电源设计是电力电子领域的核心技术,其核心目标在于提升效率与功率密度。为实现这一目标,软开关技术应运而生,它通过精心控制开关器件的电压与电流波形,使其在开通或关断瞬间实现零电压或零电流切换,从而从根本上降低开关损耗。LLC谐振变换器正是这一技术的杰出代表,它通过引入谐振网络,巧妙地实现了主开关管的零电压开关和次级整流管的零电流开关。这种拓扑结构在服务器电源、通信设备及高端显示驱动等要求高效率、高功率密度的应用场景中价值显著。本文将以半桥LLC为例,深入剖析其工作模态与增益特性,并系统阐述其参数设计、仿真验

weixin_34129696的博客 559

写给Java开发者看的JavaScript对象机制

帮助面向对象开发者理解关于JavaScript对象机制 本文是以一个熟悉OO语言的开发者视角,来解释JavaScript中的对象。 对于不了解JavaScript 语言,尤其是习惯了OO语言的开发者来说,由于语法上些许的相似会让人产生心理预期,JavaScript中的原型继承机制和class语法糖是让人迷惑的。 如果你已经对prototy...

weixin_33842304的博客 211

写出GD32L233/235在读写flash的区别(用于OTA功能)

在单片机里面表示 大概是 address += sizeof(uint32_t) address += sizeof(uint64_t)1.说到OTA功能,实际上 往flash 指定区域写 数据, 拷贝数据,然后 跳转, 必要时 注意单片机的偏移量。在写本文时,L233支持单字写入,而L235只有双字写入. 一个写入地址+4 一个写入地址+8。这个是 自己写的擦除一页 数据,当然可以参考 提供的demo去实现,看自己需求。接下来是 读取 双字,也就是在L235上的读取。

teleger的博客 907

帮助面向对象开发者理解关于JavaScript对象机制

帮助面向对象开发者理解关于JavaScript对象机制 本文是以一个熟悉OO语言的开发者视角,来解释JavaScript中的对象。 对于不了解JavaScript 语言,尤其是习惯了OO语言的开发者来说,由于语法上些许的相似会让人产生心理预期,JavaScript中的原型继承机制和class语...

chuxiaoban2239的博客 132

python电子学会三级的零碎笔记

‌示例‌:如果s = ['a', 'b', 'c'],则' '.join(s)+'\n'的结果是'a b c\n',写入文件时所有元素会在一行内显示,每个元素之间用空格分隔,末尾有一个换行符。(2) '\n'.join(s)‌:如果s = ['a', 'b', 'c'],则'\n'.join(s)的结果是'a\nb\nc',写入文件时每个元素会占据文件的一行。(1) ' '.join(s)+'\n'‌:这种方式首先将列表s中的每个元素通过空格连接成一个字符串,然后在字符串末尾添加一个换行符\n。

xzal12的博客 690

代码复现3—VLN-CE

运行训练完后在 data文件下会自动生成一个“checkpoints”文件,文件下包含任务文件“seq2seq”,该文件下会包括训练出来的权重和评估结果。数据集下载完后路径提取:data/scene_datasets/mp3d/{scene}/{scene}.glb。注意这里下载的数据集并不是所有的matterport3d,只需要一部分,包含90个场景,大小压缩后约16G。在“eval”时,会在data文件下生成videos文件,里面存放的是可视化的轨迹视频。

qq_44100524的博客 3198

从 JavaScript 到 Python:AI 开发者的双语言核心机制对照

JavaScript 和 Python 是当今最流行的两门编程语言,分别统治着前端和 AI/后端领域。本文基于《You Don’t Know JS Yet》系列书籍的深度内容,系统对照两门语言在作用域、闭包、对象模型、类型系统和异步机制等核心概念上的异同。通过并排代码示例和详细的对比表格,帮助 AI 开发者在需要跨语言工作(如全栈 AI 应用、Web 界面与模型服务交互)时快速建立准确的心智模型,避免语言迁移中的常见陷阱。关键词Python;双语言;作用域;闭包;异步;类型系统;对照分析。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 301

Linkage Mapper 输出文件夹结构解析——LCPs(栅格廊道)、LinkagePaths(矢量廊道)、Nodes(节点)

Linkage Mapper输出文件解析摘要 Linkage Mapper是生态连通性分析的重要工具,通过最小累积阻力模型(MCR)识别物种迁移廊道。其输出包含三类核心文件: LCPs(栅格廊道):存储累积阻力值的栅格数据,直观展示低阻力路径,适用于空间分析和廊道质量评估。 LinkagePaths(矢量廊道):以矢量线状要素精确记录廊道位置和走向,便于地图可视化及连通性分析。 Nodes(节点):标记廊道关键点(起点/终点/交汇点),为保护策略制定提供依据。 典型应用场景包括: 山地物种(如大熊猫)栖息地

走向CTO的路上... 1332

Node.js模块化开发以及模块加载机制

一、Node.Js模块化开发 1 JavaScript开发弊端 JavaScript在使用时存在两大问题,文件依赖 和 命名冲突 。 2 生活中的模块化开发 3 软件中的模块化开发 一个功能就是一个模块,多个模块可以组成完整应用,抽离一个模块不会影响其他功能的运行。 4 Node.js中模块化开发规范 Node.js规定一个 JavaScript文件 就是一个模块,模块 内部定义的变量和函数 默认情况下在 外部无法得到 模块内部可以使用 exports对象进行成员导出 , 使用 require方法 导

qq_43562926的博客 319

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

变量提升:JavaScript 中的隐藏机制与开发实践

本文深入解析了JavaScript中的变量提升机制。变量提升指的是变量和函数声明在代码执行前被提升到作用域顶部的过程,但只有声明部分会被提升。文章通过示例对比了var、let和const声明的差异,指出var会变量提升而let/const不会;函数声明整体提升而函数表达式仅提升变量名。实践案例展示了变量提升可能导致的undefined问题,并建议使用let/const替代var以避免此类问题。理解变量提升有助于编写更清晰可靠的代码,是现代JavaScript开发的重要知识点。

你若盛开,清风自来 2220

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JavaScript-210:JS 执行机制

JS 执行机制

臧小川的博客 431

Modern.js 热更新机制:开发效率提升的秘诀

Modern.js 是一个现代化的 Web 工程体系,其强大的热更新机制是提升开发效率的关键所在。通过内置的 Hot Module Replacement 能力,Modern.js 让前端开发体验变得前所未有的流畅和高效。 ## 🔥 什么是热更新? 热更新(Hot Module Replacement,简称 HMR)是 Modern.js 开发环境中的一项核心功能。它允许你在运行时替换、添加

gitblog_00220的博客 1094

javascript开发:javascript回收机制

一、垃圾回收机制—GC JavaScript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。 原理:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。 JavaScript垃圾回收的机制很简单:找出不再使用的变量,然后释放掉其占用的内存,但是这个过程不是实时的,因为其开销比较大,所以垃

Generon的博客 600

前端开发者必读:彻底搞懂JavaScript事件循环机制(附实战避坑指

想塞微任务,又不想污染用户 Promise 链。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 731

Express.js核心机制与Node.js Web开发实践

中间件机制是现代Web框架的核心设计模式,通过拦截HTTP请求/响应管道实现功能扩展。Express.js作为Node.js生态的标杆框架,其洋葱模型中间件系统允许开发者以可组合的方式处理请求,配合路由系统的模块化设计,大幅提升了后端服务的开发效率。在性能优化方面,连接池管理和集群部署是应对高并发的关键技术,而TypeScript支持和错误处理规范则体现了工程化实践的重要性。这些特性使Express成为构建RESTful API和微服务的理想选择,特别是在需要快速迭代的中小型项目中。通过中间件如body-p

weixin_33888907的博客 447

javascript的执行机制,html5移动web开发

同步任务指的是再主线程排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务。异步任务指的是不进入主线程,而是进入”任务队列“的任务,只有”任务对象“通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。JavaScript语言的设计者意识到,这时主线程完全可以不管IO设备,挂起处于等待中的任务,先运行排在后面的任务。2.1 javascript时一门单线程语言,,前一个任务结束,才会执行后一个任务,如果前一个任务耗时很长,后一个任务就不得不一直等着。Event Queue中读取事件执行。

peixiancccc的博客 912
上一篇: vue开发:前端数据绑定的原理
下一篇: javascript开发:javascript回收机制
Generon
博客等级 码龄11年 135粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值