Less sass
1、 offsetWidth/offsetHeight
返回值包含content + padding + border,效果与e.getBoundingClientRect()相同
2、 clientWidth/clientHeight
返回值只包含content + padding,如果有滚动条,也不包含滚动条
3、 scrollWidth/scrollHeight
返回值包含content + padding + 溢出内容的尺寸
原型和原型链的概念
每个对象都会在其内部初始化一个属性,就是prototype(原型),当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去prototype里找这个属性,这个prototype又会有自己的prototype,于是就这样一直找下去
原型和原型链的关系
instance.constructor.prototype = instance.__proto__
原型和原型链的特点
JavaScript对象是通过引用来传递的,我们创建的每个新对象实体中并没有一份属于自己的原型副本。当我们修改原型时,与之相关的对象也会继承这一改变
当我们需要一个属性的时,Javascript引擎会先看当前对象中是否有这个属性, 如果没有的
就会查找他的Prototype对象是否有这个属性,如此递推下去,一直检索到 Object 内建对象
闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域
闭包的特性:
1、 函数内再嵌套函数
2、 内部函数可以引用外层的参数和变量
3、 参数和变量不会被垃圾回收机制回收
说说你对闭包的理解
使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。在js中,函数即闭包,只有函数才会产生作用域的概念
1、 复杂的选择器
2、 弹性布局
3、 动画
高阶函数只是将函数作为参数或返回值的函数。
function higherOrderFunction(param,callback){ return callback(param); }
在重合元素外包裹一层容器,并触发该容器生成一个BFC。
例子:
<div class="aside"></div>
<div class="text">
<div class="main"></div>
</div>
<!--下面是css代码-->
.aside {
margin-bottom: 100px;
width: 100px;
height: 150px;
background: #f66;
}
.main {
margin-top: 100px;
height: 200px;
background: #fcc;
}
.text{
/*盒子main的外面包一个div,通过改变此div的属性使两个盒子分属于两个不同的BFC,以此来阻止margin重叠*/
overflow: hidden; //此时已经触发了BFC属性。
}
html
<div style="height:1px;overflow:hidden;background:red"></div>
创建规则:
1、 根元素
2、 浮动元素(float
不是none
)
3、 绝对定位元素(position
取值为absolute
或fixed
)
4、 display
取值为inline-block
,table-cell
, table-caption
,flex
, inline-flex
之一的元素
5、 overflow
不是visible
的元素
作用:
1、 可以包含浮动元素
2、 不被浮动元素覆盖
3、 阻止父子元素的margin
折叠
方法1:
1、 回调函数,优点是简单、容易理解和部署,缺点是不利于代码的阅读和维护,各个部分之间高度耦合(Coupling),流程会很混乱,而且每个任务只能指定一个回调函数。
方法2:
1、 时间监听,可以绑定多个事件,每个事件可以指定多个回调函数,而且可以“去耦合”(Decoupling),有利于实现模块化。缺点是整个程序都要变成事件驱动型,运行流程会变得很不清晰。
方法3:
发布/订阅,性质与“事件监听”类似,但是明显优于后者。
方法4:
1、 Promises对象,是CommonJS工作组提出的一种规范,目的是为异步编程提供统一接口。
2、 简单说,它的思想是,每一个异步任务返回一个Promise对象,该对象有一个then方法,允许指定回调函数。
in
运算符和 Object.hasOwnProperty
方法有什么区别?var
,let
和const
的区别是什么?Set
对象,它是如何工作的?此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。