网站性能优化的常用方法 减少HTTP请求 使用雪碧图、内联图片,合并脚本和样式表。使用内容分发网络(CDN)添加Expires头压缩组件压缩样式表和脚本,开启gzip压缩大概减少70%的大小样式表放在顶部将脚本放在底部避免CSS表达式使用外部JavaScript和CSS减少DNS查找精简JavaScript避免重定
小米前端电话面试 1.实现一个上三角形 用css2.ajax的原理 状态 原生js3.ajax中遇到前进,或者后退4.call与apply的区别5.伪类 link hover visited active6.css3的新特性7.阻止冒泡事件8.placehoder怎么兼容ie79.css的盒模型10.box-sizing11.jq代理12.冒泡,快排13.事件代理
js数组去重的方法总结 1.使用ES6的Set方法,注意返回的是一个对象,不是数组function uniqueArray(arr){ var arrNew=new Set(arr); return arrNew;}2.使用Es6的Array.from()方法function uniqueArray2(arr){ var arrNew=Array.from(new Set(arr)
DNS域名解析全过程 首先贴上一张图: 详细解释:1.首先你在客户端(也就是你的电脑)输入一个域名,这里以www.163.com为例。然后就要对这个域名进行解析。客户端向本地的DNS服务·器发起一个请求,本地的DNS服务器首先会查看缓存记录,就是域名与ip的对应关系。如果缓存中有该条记录(有输入的网址),就会将对应ip返回给客户端。2.如果缓存中没有记录,本地DNS服务器就会向根DNS服务器发起
http状态码详解 状态码含义100客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。101服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完
js实现每次调用一个函数自动加1 1.首先考虑使用闭包 function getId () { 'use strict'; var i = 0; getId = function () { return i++; }; return i++; }console.log(getId());console.log(getId());结果为01
css选择器的权重计算 CSS 选择器权重计算规则 其实,CSS有自己的优先级计算公式,而不仅仅是行间>内部>外部样式;ID>class>元素。一、样式类型 1、行间我的行间CSS样式。 2、内联 h1{font-size:12px; color:#000; } 3、外部
跨域问题的解决办法 1.同源策略如下:URL说明是否允许通信http://www.a.com/a.jshttp://www.a.com/b.js同一域名下允许http://www.a.com/lab/a.jshttp://www.a.com/script/b.js同一域名下不同文件夹允许ht
排序算法总结 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分
前序遍历,中序遍历,后序遍历的相互求法 今天来总结下二叉树前序、中序、后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明。 首先,我们看看前序、中序、后序遍历的特性: 前序遍历: 1.访问根节点 2.前序遍历左子树 3.前序遍历右子树 中序遍历: 1.中序遍历左子
从尾到头打印链表 题目描述: 输入一个链表,从尾到头打印链表每个节点的值。解题思路: 整体是后进先出,符合堆栈的原理,先将节点的值压栈,在弹栈。import java.util.Stack;import java.util.ArrayList;public class Solution { public ArrayList printListFr
替换空格 题目描述: 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路: 使用正则表达式全局搜索空格字符,在javascript中有replace()函数,知己调用该函数可以直接替换。function replaceSpace(str){
二维数组中的查找 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路: 遍历查询是最笨的方法。从左上角开始查询,可能会遇到岔路。提供一种解题思路:从左下角或者右上角开始查找,两者思路相同。以左下角为例:如果大于目标整数,需要
js原型链 ECMAScript 中描述了原型链的概念,并将原型链作为实现继承的主要方法。其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。简单回顾一下构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。那么,假如我们让原型对象等于另一个类型的实例,结果会怎么样呢?显然,此时的原型对象将包含一个
js的基本包装模型 为了便于操作基本类型值,ECMAScript 还提供了3 个特殊的引用类型:Boolean、Number 和String。这些类型与本章介绍的其他引用类型相似,但同时也具有与各自的基本类型相应的特殊行为。实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据。来看下面的例子。var s1 = "some text";
webpack超详细配置, 使用教程(图文) 流程webpack安装Step 1: 首先安装Node.js, 可以去Node.js官网下载.Step2: 在Git或者cmd中输入下面这段代码, 通过全局先将webpack指令安装进电脑中npm install webpack -gStep3: 使用Git Bash here 或者 cmd cd命令使当前目录转到当前项目的目录下, 然后输入下面
js的闭包问题 想要学好javascript,弄懂闭包问题是不可避免的·,这既是javascri的的难点,也是它的特色所在。我们要使用javascript的高级应用,就不可避免的要使用闭包。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局
在浏览器中输入www.baidu.com后执行的全部过程 1、客户端浏览器通过DNS解析到www.baidu.com 的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.181.27.48,然后通过TCP进行封装数据包,输入到网络层。2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与
OSI,TCP/IP,五层协议的体系结构,以及各层协议 OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。每一层的协议如下:物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器)数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机)网络层: