ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javaScript

2021-02-23 20:03:09  阅读:128  来源: 互联网

标签:冒泡 变量 作用域 javaScript 对象 事件 函数


一·闭包

创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以延长作用域链,缓存数据

使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。

闭包的特性:

1 :函数内在嵌套函数

2:内部函数可以引用外层的参数和变量

3:参数和变量不会被垃圾回收机制回收

 

二·作用域

当查找变量的时候,会先从当前上下文的变量对象中查找,如果没有找到,就会从父级执行上下文的变量对象中查找,一直找到全局上下文的变量对象,也就是全局对象window,这样有多个执行上下文的变量对象构成的链条就叫做作用域链

1:作用域链的作用是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到window对象即被终止,作用域链向下访问变量是不被允许的

2:简单地说作用域就是变量域函数的可访问访问,即作用域控制着变量域函数的可见性和生命周期

三·事件代理

又称之为事件委托。是JavaScript中常用绑定事件的常用技巧。"事件代理"即是把原本需要绑定的事件委托给父元素,让父元素担当事件监听的职务。事件代理代理的原理是DOM元素的事件冒泡。

好处:

1:提升性能

2:大量节省内存占用,减少事件注册,比如在table上代理所有td的click事件

3:实现当新增子对象时无需再次对其绑定

四·事件模型:

  • 冒泡型事件: 当你使用事件冒泡时,子级元素先触发,父级元素后触发

  • 捕获型事件: 当你使用事件捕获时,父级元素先触发,子级元素后触发

  • DOM事件流: 同时支持两种事件模型: 捕获型事件和冒泡型事件

  • 阻止冒泡:在w3c中,使用stopPropagation()方法,在IE下这只cancelBubble = true

  • 阻止捕获: 阻止事件的默认行为,例如click 链接后跳转。在w3c中使用 PreventDefault()方法,在IE下设置window.event.returnValue = false

五.面向对象编程

面向对象是把构成问题事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为,向对象是以功能划分问题,而不是步骤,就像一份盖浇饭,做饭在做菜,而不是混在一起。基本思想是使用对象,类,继承,封装等基本盖面来进行程序设计

  • 易维护,采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非诚方便和较低成本的

  • 易扩展

  • 缩短了开发周期

  • 开发工作的重用性,继承性高,降低重复工作量

  • 缩短了开发周期

  • 6·事件监听

    绑定事件的另中方法就是用addEventListener()和attachEvent()来绑定事件监听函数

    语法:

    element.addEventListener(event,function useCapture)

    event: (必需)事件名,支持所有DOM事件
    function: (必需)指定要事件触发时执行的函数
    useCapture: (可选)执行时间是否在捕获或冒泡阶段执行。true,捕获。false,冒泡,默认是false

    七·基础类型:

  • 值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。

    引用数据类型:对象(Object)、数组(Array)、函数(Function)。注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。

八·This

面向对象语言中 this 表示当前对象的一个引用。

但在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。

  • 在方法中,this 表示该方法所属的对象。
  • 如果单独使用,this 表示全局对象。
  • 在函数中,this 表示全局对象。
  • 在函数中,在严格模式下,this 是未定义的(undefined)。
  • 在事件中,this 表示接收事件的元素。
  • 类似 call() 和 apply() 方法可以将 this 引用到任何对象。

标签:冒泡,变量,作用域,javaScript,对象,事件,函数
来源: https://www.cnblogs.com/hong-dou/p/14437840.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有