JS

本文介绍了JavaScript中的事件处理机制,包括事件对象的获取、事件冒泡与捕获的概念、以及如何利用event.target找到触发事件的元素。并通过实例展示了如何在不同浏览器环境中兼容地使用这些特性。

事件:

e=e||window.event; //或运算。e对象存在时回返e,当window.event存在时返回event,这样就区分ff,ie了

这是一种规范,IE下支持e.srcElement,Firefox支持e.target

js中,event.srcElement 和event.target解释:

var a = document.getElementById('test');
a.addEventListener('click', function(event) {
    //这里面event.target就是a对象
}, false);

event是事件对象,包含了事件的一些信息,如这是什么事件、什么对象触发的、触发事件时鼠标在什么位置、触发事件时是否按键盘了等等。这些信息在你需要的时候就可以通过event对象拿出来使用了

target 事件属性

定义和用法 ^1:
target 事件属性可返回事件的目标节点(触发该事件的节点),如生成事件的元素、文档或窗口。
语法:
event.target

Demo:

JS CODE:
      //警报框将显示哪个元素触发了事件
      function getEventTrigger(event) { alert('触发元素的ID为:'+event.target.id); }
HTML CODE:
    <div id="op" onmousedown="getEventTrigger(event)">点我触发</div>

jQuery 事件中关于:target 属性介绍 ^3

event.target.nodeName
nodeName 属性可依据节点的类型返回其名称 ^4

JS冒泡和捕获:

在页面中点击一个元素,事件是从这个元素的祖先元素中逐层传递下来的,这个阶段为事件的捕获阶段。当事件传递到这个元素之后,又会把事件逐成传递回去,直到根元素为止,这个阶段是事件的冒泡阶段 ^2

这里写图片描述


<think>我们正在讨论的是JavaScript与js的关系和区别。根据引用内容,可以明确以下几点: 1. **JS是JavaScript的简称**:引用[3]中明确指出:“JavaScript的正式名称是‘ECMAScript’,此标准由ECMA组织发展和维护,简称‘js’”。因此,JS就是JavaScript的缩写,两者指代同一种语言。 2. **技术层面的同一性**:在编程语境中,JavaScript和js完全等价。引用[3]在介绍语言特性时统一使用“JavaScript”或“js”一词,例如“js是一种网页编程技术”“js的特点”等,这表明两者是同一事物的不同称呼。 3. **使用场景差异(非本质区别)**: - **JavaScript**:通常在正式文档或强调语言全称时使用,例如学术论文、技术规范(如ECMAScript标准)[^3]。 - **js**:更多用于非正式场景,如文件扩展名(`.js`)、命令行工具(如Node.js)或日常技术交流中,因其简洁性而被广泛采用[^3][^4]。 4. **常见误区澄清**: - **与Java无关**:引用[3]强调“java和JavaScript的关系,就像老婆和老婆饼之间的关系”,说明尽管名称相似,但两者无任何技术关联。 - **与JSON的区别**:引用[4]指出JSON是“js对象的字符串表示法”,通过`JSON.stringify()`可将js对象转为JSON字符串,两者是数据格式与语言的关系,而非名称差异。 #### 结论 JavaScript和js是同一编程语言的不同称谓,类似于“北京大学”与“北大”的关系。唯一细微差别在于使用场景: - 正式场合建议用 **JavaScript**(如文档标题、技术定义); - 非正式场景可用 **js**(如代码注释、文件命名)。 若需进一步探讨JavaScript的技术组成(如ECMAScript、BOM、DOM)或其与Node.js的关系,可参考其他问题延伸。 §§相关问题§§ 1. JavaScript的三大组成部分(ECMAScript、DOM、BOM)具体如何协同工作? 2. Node.js为何只能运行ECMAScript而无法使用BOM/DOM? 3. 如何正确区分JavaScript对象与JSON格式? 4. JavaScript的简称“js”在编程中有哪些具体使用规范? </think> ### JavaScript与JS的关系和区别 #### 1. **核心关系:同一事物的不同称呼** - **JS是JavaScript的简称** "JS" 是 "JavaScript" 的缩写形式,两者指代完全相同的编程语言。例如: - 文件扩展名使用 `.js`(如 `script.js`) - 代码注释中常用 `// JS代码` 代替完整拼写。 - **技术规范名称** 语言的官方标准名为 **ECMAScript**(由ECMA国际组织维护),JavaScript 是该标准的实现之一,而 "JS" 是其通用简称[^3]。 #### 2. **使用场景的微妙差异** | **称呼** | **典型使用场景** | **示例** | |----------------|------------------------------------------|-----------------------------| | **JavaScript** | 正式文档、技术规范、语言定义 | "JavaScript 是一种脚本语言" | | **JS** | 非正式交流、文件/变量命名、快捷书写 | `npm install js-library` | #### 3. **常见误解澄清** - **与Java无关** 尽管名称包含 "Java",但 JavaScript 和 Java 毫无技术关联("如同老婆饼与老婆的关系")。 - **与JSON的区别** JSON(JavaScript Object Notation)是 JS 的子集,用于数据交换格式,通过 `JSON.stringify()` 可将 JS 对象转为 JSON 字符串。 例如: ```javascript const obj = { name: "张三", age: 18 }; const jsonStr = JSON.stringify(obj); // 转为JSON字符串 ``` #### 4. **技术组成(仅限JavaScript)** JavaScript 包含三部分,而 "JS" 作为简称仍涵盖所有: | **组成部分** | **功能** | **浏览器支持** | **Node.js支持** | |--------------|--------------------------------------------------------------------------|---------------|----------------| | **ECMAScript** | 核心语法(变量、函数、数据类型) | ✔️ | ✔️ | | **DOM** | 操作HTML元素(如修改页面内容) | ✔️ | ❌ [^2] | | **BOM** | 控制浏览器行为(如弹出窗口、导航) | ✔️ | ❌ [^2] | > 💡 在 Node.js 中,JS 仅支持 ECMAScript,通过扩展库(如 `fs` 模块)实现文件操作等能力[^1][^2]。 #### 总结 - **关系**:JS = JavaScript(完全等价,前者是后者的简称)。 - **区别**:仅体现在使用习惯上: - **JavaScript** 用于强调语言特性或规范 - **JS** 用于日常编码和快捷表达 技术层面无任何差异,两者均指向同一门脚本语言。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值