Dom 事件和JavaScript的词法分析过程

简介:

dom自带了很多事件,常见的如下所示


wKiom1kbz3OzzmSXAAOLKOkh7Gc124.png

当触发这些事件的时候,我们可以执行自定义的各种函数。


一般说来,绑定事件有3种方法。


第一种方法,直接在标签上面绑定,比如

1
2
3
4
<input id= 'i1'  type= 'button'  onclick= 'ClickOn(this)' >
 
function  ClickOn(self){
}


第二种方法,是先获取Dom对象,然后进行绑定。比如

1
2
3
4
5
<input id= 'i1'  type= 'button'  >
 
document.getElementById( 'i1' ).conclick= function  ClickOn(){
 
}


第三种,则是通过 addEventListener() 绑定,这种方式可以绑定多个事件到一个点击操作上。他的第一个参数是click,第二个是匿名函数,第三个true表示从执行顺序从外到内,false表示从内到外


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE html>
<html lang= "en" >
<head>
     <meta charset= "UTF-8" >
     <title>Title</title>
</head>
<style>
     #main{
         background-color: red;
         width:300px;
         height:400px;
     }
     #content{
         background-color: pink;
         width:150px;
         height:200px;
     }
</style>
<body>
     <div id= "main" >
         <div id= "content" ></div>
     </div>
     <script>
         var  mymain = document.getElementById( "main" );
         var  mycontent = document.getElementById( "content" );
         mymain.addEventListener( "click" , function (){console.log( "main" )}, true );
         mycontent.addEventListener( "click" , function (){console.log( "content" )}, true );
     </script>
</body>
</html>


当我们编写页面的时候,一个基本原则是行为(js) 样式(css) 和结构(html)都需要分离,因此第一种直接在标签上绑定样式和事件的方式应该尽量避免使用。


最后,再看看JavaScript的词法分析过程。


比如说,执行下面的函数,他的输出结果是首先输出function,然后27和27

1
2
3
4
5
6
7
8
       function  t1(age){
             console.log(age);  // function age()
             var  age = 27;
             console.log(age);  // 27
             function  age(){}
             console.log(age);  // 27
         }
         t1(3);


为什么会这样了,他的词法分析是三部分:

  1. 形式参数:这里首先创建AO.age=‘undefined’,然后AO.age=3;

  2. 局部变量:如果有AO.age了 不做改变,如果没有AO.age=undefined; 这里已经有了,因此不做改变

  3. 函数申明:优先级最高,直接age=function()

  4. 执行函数t1


经过3步之后,age直接变成优先级最高的函数,接下来age变成27,然后因为没有执行function age(),因此age不变。






本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1926582,如需转载请自行联系原作者

目录
相关文章
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
417 57
|
Web App开发 JavaScript 前端开发
javascript onkeydown事件
javascript onkeydown事件
|
JavaScript
js两种移除事件的方法
js两种移除事件的方法
170 3
|
8月前
|
JavaScript 前端开发 Java
【Java进阶】详解JavaScript事件
总的来说,JavaScript事件是JavaScript交互设计的核心,理解和掌握JavaScript事件对于编写高效、响应式的网页应用至关重要。
168 15
|
9月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
JavaScript 前端开发 索引
js中DOM的基础方法
【10月更文挑战第31天】这些DOM基础方法是操作网页文档结构和实现交互效果的重要工具,通过它们可以动态地改变页面的内容、样式和行为,为用户提供丰富的交互体验。
|
11月前
|
JavaScript 前端开发 测试技术
盘点原生JavaScript中直接触发事件的方式
本文全面探讨了原生JavaScript中触发事件的多种方式,包括`dispatchEvent`、`Event`构造函数、`CustomEvent`构造器、直接调用事件处理器以及过时的`createEvent`和`initEvent`方法。通过技术案例分析,如模拟点击事件、派发自定义数据加载事件和实现提示框系统,帮助开发者掌握这些方法在实际开发中的应用,提升灵活性与兼容性。
433 3
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
462 5
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
存储 JavaScript 前端开发
js事件队列
【10月更文挑战第15天】
216 6

热门文章

最新文章