
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
JavaScript编程开发语言的学习是每位软件编程开发程序员都应该熟练掌握并应用的一个编程开发语言,而本文我们就通过案例分析来简单了解一下,JavaScript编程语言常见问题解析。
1、let,const,var的区别?
变量提升:let,const定义的变量不会出现变量提升,而var会
块级作用域:let,const是块作用域,即其在整个大括号{}之内可见,var:只有全局作用域和函数作用域概念,没有块级作用域的概念。
重复声明:同一作用域下let,const声明的变量不允许重复声明,而var可以
暂时性死区:let,const声明的变量不能在声明之前使用,而var可以
const声明的是一个只读的常量,不允许修改
2、JavaScript作用域与作用域链
作用域:
简单来说,作用域是指程序中定义变量的区域,它决定了当前执行代码对变量的访问权限
作用域链:
当可执行代码内部访问变量时,会先查找当前作用域下有无该变量,有则立即返回,没有的话则会去父级作用域中查找...一直找到全局作用域。我们把这种作用域的嵌套机制称为作用域链
3、如何正确的判断this指向?
this的绑定规则有四种:默认绑定,隐式绑定,显式绑定,new绑定.
函数是否在new中调用(new绑定),如果是,那么this绑定的是new中新创建的对象。
函数是否通过call,apply调用,或者使用了bind(即硬绑定),如果是,那么this绑定的就是指定的对象。
函数是否在某个上下文对象中调用(隐式绑定),如果是的话,this绑定的是那个上下文对象。一般是obj.foo()
如果以上都不是,那么使用默认绑定。如果在严格模式下,则绑定到undefined,否则绑定到全局对象。
如果把null或者undefined作为this的绑定对象传入call、apply或者bind,这些值在调用时会被忽略,实际应用的是默认绑定规则。
箭头函数没有自己的this,它的this继承于上一层代码块的this。
4、事件模型
DOM0级模型:,这种模型不会传播,所以没有事件流的概念,但是现在有的浏览器支持以冒泡的方式实现,它可以在网页中直接定义监听函数,也可以通过js属性来指定监听函数。这种方式是所有浏览器都兼容的。
IE事件模型:在该事件模型中,一次事件共有两个过程,事件处理阶段,和事件冒泡阶段。事件处理阶段会先执行目标元素绑定的监听事件。然后是事件冒泡阶段,冒泡指的是事件从目标元素冒泡到document,依次检查经过的节点是否绑定了事件监听函数,如果有则执行。这种模型通过attachEvent来添加监听函数,可以添加多个监听函数,会按顺序依次执行。
DOM2级事件模型:在该事件模型中,一次事件共有三个过程,一个过程是事件捕获阶段。捕获指的是事件从document一直向下传播到目标元素,依次检查经过的节点是否绑定了事件监听函数,如果有则执行。后面两个阶段和IE事件模型的两个阶段相同。这种事件模型,事件绑定的函数是addEventListener,其中三个参数可以指定事件是否在捕获阶段执行。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。