JavaScript提供的异步模式
1、回调函数(callbacks)
2、事件监听
3、Promise对象
call、apply的区别
call和apply都是改变this指向的方法,区别在于call可以写多个参数,而apply只能写两个参数,第二个参数是一个数组,用于存放要传的参数。
call和apply的好处
用call和apply实现更好的继承和扩展,更安全。
ajax请求方式
1).getSON(url,[data],[callback])
2).ajax(opiton)
3)$.getScript(url,[callback])
4)jquery对象.load(url,[data],[callback])
5)serialize()与serializeArray()
如何创建一个对象
1、工厂模式
2、构造函数模式
3、原型模式
4、混合构造函数和原型模式
5、动态原型模式
6、寄生构造函数模式
7、稳妥构造函数模式
js的几种继承方式
1、使用对象冒充实现继承
2、采用call、Apply方法改变函数上下文实现继承
3、原型链方式继承
eval
它的功能是把对应的字符串解析成JS代码并运行;应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,—次执行)。
null,undefined的区别
undefined表示变量声明但未初始化的值,null表示准备用来保存对象,还没有真正保存对象的值。从逻辑角度看,null表示一个空对象指针。
JSON
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它是基于JavaScript 的一个子集。数据格式简单,易于读写,占用带宽小。
js延迟加载的方式
defer和async、动态创建DOM方式(用得最多)、按需异步载入js
&&运算符
&&也可以叫逻辑与,在其操作数中找到第一个虚值表达式并返回它,如果没有找到任何虚值表达式,则返回最后一个真值表达式。它采用短路来防止不必要的工作。
||运算符
||也叫或逻辑或,在其操作数中找到第一个真值表达式并返回它。这也使用了短路来防止不必要的工作。在支持ES6默认函数参数之前,它用于初始化函数中的默认参数值。
事件传播
当事件发生在 DOM元素上时,该事件并不完全发生在那个元素上。在“冒泡阶段”中,事件冒泡或向上传播至父级,祖父母,祖父母或父级,直到到达 window为止;而在“捕获阶段”中,事件从window开始向下触发元素事件或event.target。
事件传播的三个阶段
1、捕获阶段事件从 window开始,然后向下到每个元素,直到到达目标元素。
2、目标阶段事件已达到目标元素。
3、冒泡阶段事件从目标元素冒泡,然后上升到每个元素,直到到达window。
事件冒泡
当事件发生在DOM元素上时,该事件并不完全发生在那个元素上。在冒泡阶段,事件冒泡,或者事件发生在它的父代,祖父母,祖父母的父代,直到到达window为止。
事件捕获
当事件发生在DOM元素上时,该事件并不完全发生在那个元素上。在捕获阶段,事件从window开始,一直到触发事件的元素。
event.target
简单来说,event.target,是发生事件的元素或触发事件的元素。
event.currentTarget
event.currentTarget是我们在其上显式附加事件处理程序的元素。
==和===的区别
==用于一般比较,===用于严格比较,==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回flase。
!!运算符
!!运算符可以将右侧的值强制转换为布尔值,这也是将值转换为布尔值的一种简单方法。
作用域
JavaScript中的作用域是我们可以有效访问变量或函数的区域。JS有三种类型的作用域:全局作用域、函数作用域和块作用域(ES6)。
全局作用域——在全局命名空间中声明的变量或函数位于全局作用域中,因此在代码中的任何地方都可以访问它们。
标签:知识点,元素,作用域,JavaScript,window,call,冒泡,事件 From: https://blog.51cto.com/u_16220922/8377237