1.get 请求传参长度的误区
- 误区:我们经常说 get 请求参数的大小存在限制,而 post 请求的参数大小是无限制的。
- 实际上 HTTP 协议从未规定 GET/POST 的请求长度限制。
- 对 get 请求参数的限制 是来源与浏览器或 web 服务器,浏览器或 web 服务器限制了 url 的长度。 HTTP 协议 未规定 GET 和 POST 的长度限制 GET 的最大长度显示是因为 浏览器和 web 服务器限制了 URI 的长度 不同的浏览器和 WEB 服务器,限制的最大长度不一样 要支持 IE,则最大长度为 2083byte,若只支持 Chrome,则最大长度 8182byte
2.get 和 post 请求在缓存方面区别
- get 类似查找的过程,用户获取数据,可以不用每次都与数据库连接,所以可以使用缓存。
- post 做的一般是修改和删除的工作,所以必须与数据库交互,所以不能使用缓存。因此 get 请求适合于请求缓存
3.说一下闭包
一句话可以概括:闭包就是能够读取其他函数内部变量的函数,或者子函数在外调用, 子函数所在的父函数的作用域不会被释放
4.类的创建和继承
(1)类的创建(es5):new 一个 function,在这个 function 的 prototype 里面增加属性和 方法。 下面来创建一个 Animal 类:
// 定义一个动物类
function Animal (name) {
// 属性 this.name = name || 'Animal'; // 实例方法
this.sleep = function(){ console.log(this.name + '正在睡觉!'); }
}
// 原型方法
Animal.prototype.eat = function(food) { console.log(this.name + '正在吃:' + food); };
这样就生成了一个 Animal 类,实力化生成对象后,有方法和属性
(2)类的继承——原型链继承 --原型链继承
function Cat(){ }
Cat.prototype = new Animal();
Cat.prototype.name = 'cat';
// Test Code
var cat = new Cat();
console.log(cat.name);
console.log(cat.eat('fish'));
console.log(cat.sleep());
console.log(cat instanceof Animal); //true
console.log(cat instanceof Cat); //true