常见经典面试内容整理

如何提升网页加载速度jquery

 

  1. 减小HTTP请求  网站建设中过多的图片,CSS、script、flash,会增长内容加载的请求负担,因此,建议您减小这类元素的使用。使用CSS合并图片,避免出现直接插入原图。ajax

  2. 使用Gzip压缩文档:GZIP编码是用来改进网页性能的方法,不只能够减少存储空间,还能够减小传输所需的时间。将网站中的文件使用Gzip压缩后,能够显著的增长网页加载速度,同时也能够下降网站的带宽流量消耗。
  3. 设置合理的过时时间    尽量减少Cookie体积,可以很好的提升网页内容加载效率;对静态组件的Cookie读取是一种资源的浪费。
  4. 减小图片体积    建议你们能够考虑将GIF转为PNG,同时您能够在CSS Sprites中竖直并尽可能将颜色类似的图片紧凑的排列在一块儿能够有效的减少图片自己的大小,从而提升网站页面图片显示速度。
  5. 样式表文件放在外部调用:    把页面中须要用到的JavaScript和CSS样式表文件放在另外的文件夹中,这样一来在打开网站其它页面时就会缓存这些调用的文件,从而加快网站页面的加载速度。
  6. 减小域名DNS查找时间:    用户在浏览器的地址栏中键入域名后,浏览器就会经过DNS系统查找域名对应的IP地址,因此须要将DNS的时间设置在较低的水平,好比平均60-100毫秒进行一次DNS查询。

 

JavaScript数据类型分那几种? 编程

 

  1. Number 数字类型跨域

 

  2. String 字符串类型浏览器

 

  3. Boolean 布尔类型缓存

 

  4. Function 函数闭包

 

  5. Object 对象app

 

  6. Nulljquery插件

 

  7. Undefined 没有定义类型异步

 

写过jquery插件吗?都写过哪些?
 对原型了解多少  js怎么实现一个类的继承 

1.原型链继承(将父的原型对象赋值给子的原型对象,再将子的constructor属性的指针从新指向子的构造函数)
function Animal() {
this.feeling = 'happy';
}
function Dog(name, variety) {
this.name = name;
this.variety = variety;
}
Dog.prototype = new Animal();//Animal实例对象就是Dog原型对象(Animal实例对象的prototype属性指向Animal的原型对象)
Dog.prototype.constructor = Dog;//给Dog原型对象的constructor属性的指针从新指向构造函数Dog
var dog = new Dog('二狗', '哈士奇');
print(dog.feeling); // happy

缺点:

a、当父包含引用类型属性时,该属性会被全部实例对象共享,示例代码以下:

function Animal() {
this.colors = ['red', 'green', 'blue'];
}
function Dog() {
}
// 继承Animal
Dog.prototype = new Animal();
Dog.prototype.constructor = Dog;

var dog1 = new Dog();
dog1.colors.push('black');
print(dog1.colors); // red,green,blue,black

var dog2 = new Dog();
print(dog2.colors); // red,green,blue,black

b、不能在不影响全部实例对象的状况下,向父级构造函数传递参数

2.构造函数继承
function Dog(name, variety) {
Animal.apply(this, arguments);
this.name = name;
this.variety = variety;
}

var dog = new Dog('二狗', '哈士奇');
print(dog.feeling); // happy

使用apply或者call方法改变构造函数做用域,将父函数的构造函数绑定到子对象上。虽然解决了子对象向父对象传递参数的目的,可是借助构造函数,方法都在构造函数中定义,函数的复用就无从谈起

3.构造函数和原型链组合继承

function Animal(name) {
this.name = name;
this.colors = ['red', 'green', 'blue'];
}
Animal.prototype.sayName = function() {
print(this.name);
};
function Dog(name, age) {
// 继承属性
Animal.call(this, name);
this.age = age;
}
// 继承方法
Dog.prototype = new Animal();
Dog.prototype.constructor = Dog;
Dog.prototype.sayAge = function() {
print(this.age);
}

var dog1 = new Dog('二狗', 1);
dog1.colors.push('black');
print(dog1.colors); // red,green,blue,black
dog1.sayName(); // 二狗
dog1.sayAge(); // 1

var dog2 = new Dog('二牛', 2);
print(dog2.colors); // red,green,blue
dog2.sayName(); // 二牛
dog2.sayAge(); // 2

 

实现div元素水平居中和垂直居中的几种方法 
 跨域的get方法和post方法怎么实现 
 bind()、live()、delegate()、on()的区别
怎么实现跨域
 解释一下闭包?闭包是怎么造成的?
 == 和 === 的区别
 你对回流、重绘怎么看
了解响应式设计吗
ajax原理
ajax的优缺点
常见浏览器兼容问题
js的异步编程几种方法
模块化
相关文章
相关标签/搜索