摘要:
阅读全文
摘要:
JS垃圾回收机制 浏览器 为什么要有垃圾回收机制? 在C语言和C++语言中,我们如果想要开辟一块堆内存的话,需要先计算需要内存的大小,然后自己通过malloc函数去手动分配,在用完之后,还要时刻记得用free函数去清理释放,否则这块内存就会被永久占用,造成内存泄露。 但是我们在写JavaScript 阅读全文
摘要:
高阶函数 高阶函数是指满足下列条件之一的函数: 函数可以作为参数被传递 函数可以作为返回值输出 常见内置高阶函数 ES6新增的数组方法:map/reduce, fliter, sort排序等 高阶函数其他应用场景 高阶函数实现AOP AOP面向切面编程:主要作用是把一些跟核心业务逻辑模块无关的功能抽 阅读全文
摘要:
JS中定义对象的几种方式 字面量及基于已有对象扩充其属性和方法 工厂模式 构造函数的方式 基于原型(prototype)的方式 动态原型的方式 ES6的Class 一,字面量及基于已有对象扩充其属性和方法 let obj = {} obj.name = 'Jett' obj.sayHello = f 阅读全文
摘要:
在Js中,有三种常用的绑定事件的方法: 一. 在Dom元素中直接绑定 <button onclick="handleClick">Click Me</button> 二.在JS代码中绑定 document.getElementById("demo").onclick=function(){ /* 函 阅读全文
摘要:
浏览器如何渲染网页 首先我们要了解一个名词——关键渲染路劲。关键渲染路径是指浏览器从最初接收请求来的HTML、CSS、javascript等资源,然后解析、构建树、渲染布局、绘制,最后呈现给客户能看到的界面这整个过程。 用户看到页面实际上可以分为两个阶段:页面内容加载完成和页面资源加载完成,分别对应 阅读全文
摘要:
主流浏览器:IE、Safari、Mozilla FireFox、Google Chrome、Opera、国产 浏览器内核及其代表作(内核:渲染引擎) Trident: IE, 腾讯,360等国产浏览器(不开源) Gecko: Mozilla FireFox,开源,跨平台 Presto: Opera, 阅读全文
摘要:
重绘(Repaint)和回流(Reflow) 什么是回流 通过构造render tree,我们将可见DOM节点以及它对应的样式结合起来,可是我们还需要计算它们在设备视口(viewport)内的确切位置和大小,这个计算的阶段就是回流。 当render tree中的一部分(或全部)因为元素的规模尺寸,布 阅读全文
摘要:
JS中的new操作符 和其他高级语言一样,JS中也有new运算符,我们知道new运算符是用来实例化一个类,从而在内存中分配一个实例对象。但在 javascript 中,万物皆对象,为什么还要通过 new 来产生对象? ner操作符的基本使用: 如果函数或者方法调用前带有关键字new, 则构成构造函数 阅读全文
摘要:
首先我们要知道call、apply、bind的作用都是用来改变this的指向的,可以从以下几点来考虑如何实现这几个函数: 不传入第一个参数,那么上下文默认是window 改变了this指向,让新的对象可以执行该函数 实现call // 通过配置默认参数的方式,第一个参数如果不传,默认为window 阅读全文