css: 什么是css盒模型
CSS中的盒子模型包括IE盒子模型和标准的W3C盒子模型
box-sizing有3个值:border-box,padding-box,content-box.
标准盒模型box-sizing:content-box; 如下图
IE盒模型 box-sizing:border-box;如下图
区别:
从图中我们可以看出,这两种盒子模型最主要的区别就是width的包含范围,
在标准的盒子模型中,width指content部分的宽度,
在IE盒子模型中,width表示content+padding+border这三个部分的宽度,
所以在计算整个盒子的宽度时存在着差异:
标准盒子模型的盒子的实际宽度:左右border+左右padding+width
IE盒子模型的盒子的实际宽度:width
box-sizing:content-box;表示标准的盒子模型
box-sizing:border-box表示的是IE盒子模型
而box-sizing:padding-box,这个属性值的宽度包含了左右padding+width
闭包
有权访问另一个函数作用域中的变量的函数
闭包原理:
闭包的实现原理,其实是利用了作用域链的特性,我们都知道作用域链就是在当前执行环境下访问某个变量时,如果不存在就一直向外层寻找,最终寻找到最外层也就是全局作用域,这样就形成了一个链条。
闭包优点:
-
隐藏变量,避免全局污染
-
可以读取函数内部的变量
闭包缺点:
-
导致变量不会被垃圾回收机制回收,造成内存消耗
-
不恰当的使用闭包可能会造成内存泄漏的问题
垃圾回收机制:
JS规定在一个函数作用域内,程序执行完以后变量就会被销毁,这样可节省内存;
使用闭包时,按照作用域链的特点,闭包(函数)外面的变量不会被销毁,因为函数会一直被调用,所以一直存在,如果闭包使用过多会造成内存销毁。
//闭包实现自增;函数内部局部变量递增,不会影响全部变量
var a = 10;
function Add(){
var a = 10;
return function(){
a++;
return a;
};
};
var cc = Add();
console.log(cc());
console.log(cc());
console.log(cc());
console.log(a);
GET与POST的区别
区别:
-
GET请求一般用去请求获取数据,
POST一般作为发送数据到后台时使用 -
GET请求也可传参到后台,但是其参数在浏览器的地址栏的url中可见,所以隐私性安全性较差,且参数长度也是有限制的
POST请求传递参数放在Request body中,不会在url中显示,比GET要安全,且参数长度无限制 -
GET请求刷新浏览器或回退时没有影响
POST回退时会重新提交数据请求 -
GET请求比较常见的方式是通过url地址栏请求
POST最常见是通过form表单发送数据请求