闭包是指一个函数引用另一个函数中的变量,导致另一个函数的变量不会被回收,所以闭包会增大内存。
特性:
1、函数嵌套函数;
2、函数内部可以引用外部变量;
3、变量不会被垃圾机制回收。
浏览器本地存储
sessionstorage与localstorage,前者仅仅是会话级的储存,并不是持久化的储存,后者是持久化的储存,除非删除。
cookie与session
1、cookie数据存放在客户浏览器上,session数据存放在服务器上;
2、cookie不安全,可以分析本地cookie进行诈骗;
3、session比较占服务器的性能;
推荐将登陆等重要信息存放在session中。
CSS小知识
display:none 与 visibility:hidden,前者不占据空间,后者保留其位置。
link与@import:
1、link是html标签,@import是css提供的;
2、link与页面同时加载,@import页面加载完后加载;
3、link权重高于@import;
position:absolute与float
同:设置元素位置; 异:float会占据位置,position会覆盖其他元素。
css选择器:
1、id选择器(id)
2、类选择器(class)
3、标签选择器(div img)
4、相邻选择器(h1+p)
5、子选择器(ul>li)
6、后代选择器(li a)
7、通配符选择器(*)
8、属性选择器(a[rel="external"])
9、伪类选择器(a:hover)
position:absolute与relative
absolute绝对定位相对于最近一级元素的位置定位,relative相对定位相对正常位置定位。
XML与JSON
JSON是javasript对象表示法,用来传输和存储数据的,将json参数传递给js函数,比XML更小、更快、更易解析。
css sprites
将一些图片整合到一张图片文件中,提升了页面加载速度。
.bg_sprite{background-image:url(/整图地址); background-repeat:no-repeat}
引用该类 .. 然后在元素中逐一定义背景坐标 .. 以下为关键属性 ..
#ico1 {width:容器宽度;height:容器高度;background-position:X坐标 Y坐标}
#ico2 {width:容器宽度;height:容器高度;background-position:X坐标 Y坐标}
#ico3 {width:容器宽度;height:容器高度;background-position:X坐标 Y坐标}
.nav {width:容器宽度;height:容器高度;background-position:X坐标 Y坐标}
必须要限定容器大小符合背景图元素位置 .. 另外 .. XY轴是相对于整张图片的左上角来算的 .. 所以取值一定要算清楚。
webpack它能管理、打包html/js/css以及静态文件(图片、文字等),并能分析各模块间的依赖关系,并编译出模块们需要的静态资源。
TCP“三次握手”与“四次挥手”
三次握手:发送端发送带YSN标志的数据包给接收端,接收端收到后反馈带YSN/ACK标志的数据包给发送端,最后发送端发送带ACK标志的数据包给接收端。
四次挥手:主动关闭方发送一个FIN,被动关闭方收到后反馈一个带ACK标志的数据包给主动关闭方,被动关闭方发送一个FIN给主动关闭方,主动关闭方收到后反馈一个带ACK标志的数据包给被动关闭方。
TCP(传输控制协议)与UDP
TCP是基于连接协议,即正式发送数据前,必须和对方建立可靠连接;UDP非协议连接,即发送数据前不需要与对方建立联系。
“快速排序”
<script>
function quickp(arr){
if(arr.length<=1){
return arr;
};
var num=Math.floor(arr.length/2);
var numvalue=arr.splice(num,1);
var left=[];
var right=[];
for(var i=0;i<arr.length;i++){
if(arr[i]<numvalue){
left.push(arr[i])
}else{
right.push(arr[i])
}
}return quickp(left).concat([numvalue]+quickp(right))
}
alert(quickp([2,7,5,1,3,4]));
</script>
单选框radio 复选框checkbox 下拉框option