JavaScript

JavaScript优化写法汇总

你可能做了很长时间的JavaScript开发,但有时你可能没有更新最新的特性,这些特性可以解决你的问题,而不需要做或编写一些额外的代码。这些技术可以帮助您编写干净和优化的JavaScript代码。

动画性能优化

当然,DOM+js的这种方式由于极易引起浏览器重绘或者回流,有非常大的性能风险,对于这种动画的优化方法就是不用DOM进行动画操作.

什么是闭包?闭包的作用是什么

js采用的是词法作用域,也就是函数可以访问的变量在函数定义时写在哪里就确定了和函数被调用的位置无关。闭包就是函数不在定义的词法作用域内被调用,但是仍然可以访问词法作用域中定义的变量。

前端性能优化

动画性能不仅在前端,在任何客户端技术中心都是性能的重灾区,归根到底是需要大量的计算和渲染工作,远超普通的静态UI.

JS函数柯里化

把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。

判断数组的三种方法:Object.prototype.toString.call() 、 instanceof 以及 Array.isArray(),谈谈它们的优劣

每一个继承 Object 的对象都有 toString 方法,如果 toString 方法没有重写的话,会返回 [Object type],其中 type 为对象的类型。但当除了 Object 类型的对象外,其他类型直接使用 toString 方法时,会直接返回都是内容的字符串,所以我们需要使用call或者apply方法来改变toString方法的执行上下文。

浏览器缓存机制详细解说

缓存可以说是性能优化中简单高效的一种优化方式了,它可以显著减少网络传输所带来的损耗。

cookie,localStorage,sessionStorage,indexDB分析比较

从上表可以看到,cookie 已经不建议用于存储。如果没有大量数据存储需求的话,可以使用 localStorage 和 sessionStorage。对于不怎么改变的数据尽量使用 localStorage 存储,否则可以用 sessionStorage 存储。

什么是跨域?怎么解决

因为浏览器出于安全考虑,有同源策略。也就是说,如果协议、域名或者端口有一个不同就是跨域,Ajax 请求会失败。

手写 call、apply 及 bind 函数

首先从以下几点来考虑如何实现这几个函数:不传入第一个参数,那么上下文默认为 window。改变了 this 指向,让新的对象可以执行该函数,并能接受参数。

手写 Promise,内含原理介绍

在完成符合 Promise/A+ 规范的代码之前,我们可以先来实现一个简易版 Promise,因为在面试中,如果你能实现出一个简易版的 Promise 基本可以过关了。

Sidebar