前端面试题(准备)

原型和原型链

原型

js中的对象都包含了一个prototype的内部属性,这个属性所对应的就是该对象的原型(原型是一个对象模板)

原型链

是有一些用来继承和共享属性的对象组成的对象链,并且原型链的长度是有限的(对象之间存在继承关系,在js中是通过prototype对象指向父类对象,直到object对象为止,这样就形成了一个原型指向的链条,我们称之为原型链)

举例:student>person>object 学生>人类>object类

function Animal(name){
	this.name=name
}
Animal.prototype.getName={
	consloe.log(this.name)
}
var animal1=new Animal('Kate');
var animal2=new Animal('Lucy');

animal1和animal2共享方法getName

var A=function(){ }
A.prototype.n=1;
var b=new A();
A.prototype={n:2,m:3};
var c=new A();
console.log(b.n,b.m,c.n,c.m) // 1,undefined,2,3

b继承了A,c继承A的时候添加了n和m
undefined是一个表示“无”的原始值;null用来表示尚未存在的对象;

闭包

是能够读取其他函数内部变量的函数(函数a的内部函数b,被函数a之外的变量引用的时候就创建了闭包)

一般在什么情况下使用:函数封装,定时器;

闭包例子:

function a() {
	var i=0;
	function b(){
		i++;
		alert(i);
	}
	return b;
}
var c= a();
c();
输出结果为1,2,3

闭包的用处:读取函数的局部变量;让这些变量值始终保持在内存中。
闭包的优点:减少全局变量;减少传递函数的参数量;封装。
闭包的缺点:使用闭包会占有内存资源,过多的使用闭包可能会导致内存溢出等;

内存泄漏的解决方案:把那些不需要的变量,但是垃圾回收站又收不走的那些赋值为null,然后让垃圾回收走。

Ajax

Ajax是什么?

是异步JavaScript和XML,是一种创建交互式网页应用的网页开发技术,能够向服务器请求额外的数据而无须加载页面,对网页的某部分进行更新。

XMLHTTPRequest对象是什么?

是Ajax的基础;用于在后台与服务器交换数据。

get和post请求

get:常用于向服务器查询信息;
post:常用于向服务器发送应该被保存的数据;
post请求消耗的资源多,get请求速度是post的两倍

创建一个Ajax

1.创建XMLHttpRequest对象(Ajax对象)
2.使用open方法设置和服务器的交互信息(建立服务器链接)
3.设置发送的数据,开始和服务器交互(发生请求)
4.注册事件(建立Ajax事件)
5.更新界面(http responseText)

Ajax的优缺点

优点:减少服务器的负担,按需取数据,最大程度的减少了冗余请求;
局部刷新页面,减少用户心里和实际的等待时间,带来更好的用户体验;
进一步促进页面和数据的分离;
缺点:编写时需考虑浏览器的兼容性,因为使用了大量js和Ajax的引擎;
对流媒体还有移动设备的支持性不太豪。

发布了60 篇原创文章 · 获赞 4 · 访问量 3195
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章