您的位置:首页 > Web前端

前端试题大综合练习(八)

2017-08-03 11:02 246 查看
1、存在一个足够大的二维数组,每个数组中的值都是整数,使用javascript如何实现按每个数组中的平均值,从大到小排序这个二维数组?

答案:

function sortArr(arr){
if (arr.length<2) {
return arr;
}
for(var i=0;i+1<arr.length;i++){
var mid1=getMid(arr[i]);
var mid2=getMid(arr[i+1]);
if (mid1<mid2) {
var temp=arr[i].slice();
arr[i]=arr[i+1].slice();
arr[i+1]=temp.slice();
}
}
return arr;

}

function getMid(arr){
if (!arr.length) {
return 0;
}
var sum=0;
for(var j=0;j<arr.length;j++){
sum+=arr[j]
}
return sum/arr.length;

}

2、Web.xml文件的作用是什么?

用来初始化网站配置信息

3、Alert(1&&2)的值是?

1

2

FALSE

TRUE

答案:B

解:&&操作符,第一个操作数是1,为true,则输出第二个操作数的值!;若第一个操作数为假,则直接输出第一个操作数即可。

4、下面一段 Javascript 请打出输出的信息代码

var myObject={
foo:'bar',
func:function(){
var self=this;
console.log('outer func: this.foo='+this.foo);
console.log('outer func: self.foo='+self.foo);
(function(){
console.log('inner func: this.foo='+this.foo);
console.log('inner func: self.foo='+self.foo);
})();
}

};

myObject.func();

答案:作用域的问题

outer func: this.foo=bar

outer func: self.foo=bar

inner func: this.foo=undefined

inner func: self.foo=bar

5、如何判断两个JSON对象的值是否完全相等,请写出代码。 如{x:1,y:1}与{y:1,x:1}是相同的,与{x:1,y:1,z:1}是不同的。

答案:

function comJson(obj1,obj2){
if (!obj1||!obj2) {
return false;
}
for(var attr in obj2){
if (obj1[attr]) {
if (obj1[attr]===obj2[attr]) {
continue;
}else{
return false;
}
}else{
return false;
}
}
return true;

}

6、谈谈优雅降级与渐进增强的区别。

解:优雅降级是为了兼容较低的版本,尽量使用大家都兼容的语法;

渐进增强是在完成基本功能的前提下,用更高级的语法写更完善的功能。

7、简要解释盒模型、行内元素与块级元素的概念。

解:盒模型包括padding、border、margin、content;

行内元素占行的一部分;

块级元素独占一行。

8、创建一个对象obj,该对象包含一个名为"name"的属性,其值为"value" 。以下哪一段JavaScript代码无法得到上述的结果? ()

var obj = new Object(); 

obj["name"] = "value";

var obj = new Object(); 

obj.prototype.name = "value";

var obj = {name : "value"};

var obj = new function() { 
this.name = "value"; 

}

答案:B

解:实例对象(new Object得到的对象)没有prototype属性。

9、window的哪个方法可以显示输入对话框?

confirm()

alert()

prompt()

open()

答案:C

confirm()是弹出判断对话框;alert()是弹窗;open()是打开新的页面;

10、模拟实现一个function的bind方法。

Function.prototype.bind=function(context){
var agsArr=[...arguments],fn=this;
return function(){
fn.apply(context,agsArr);
}



11、以下 javascript 代码,在浏览器中运行的结果是

function foo(){
console.log('first');
setTimeout(function(){
console.log('second');
},5);

}

for(var i=0;i<4399999999;i++){
foo();

}

first,second,first,second..依次顺序输出

首先全部输出first,然后全部输出second

first,second无顺序输出

首先输出first,超出5ms输出所有second,最后输出余下的first

答案:B

解:此题考的是setTimeout方法的运行过程。定时器作用是在规定时间内将事件加入到执行队列,如果队列中没有任何东西就会立即执行,否则要等队列中的东西执行完才能执行。

12、'+new Array(017)'输出?

17

NaN

15

Error

答案:B

解:+作为一元运算符时,会将参数转换为数字返回。而new Array(017)得到的是一个长度为15的空数组。

13、请简述CORS(跨源资源共享)的请求的基本流程。

答案:实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。

浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。 

只要同时满足以下两大条件,就属于简单请求。

(1) 请求方法是以下三种方法之一: HEAD GET POST 

(2)HTTP的头信息不超出以下几种字段: Accept、Accept-Language、Content-Language、Last-Event-IDContent-Type:application/x-www-form-urlencoded、multipart/form-data、text/plain 

CORS代码实现与同源的AJAX完全一样。

14、用Javascript动态创建一个div元素,将id设置为'mydiv',字体颜色为绿色,字号14,粗体,内容为'Javascript DIV'。最后将该元素追加到body中来显示(注:所有这些要求都使用javascript来完成,也可以使用jQuery来完成)。

答案:

var oDiv=document.createElement('div');

oDiv.setAttribute('id','mydiv');

oDiv.setAttribute('color','green');

oDiv.setAttribute('fontSize','14');

oDiv.setAttribute('fontWeight','bold');

oDiv.innerHTML='Javascript DIV';

document.body.appendChild(oDiv);

15、在空白处填入适当的代码使输出结果成立:

function showMoney( ) {
_________

}; 

var personA = new Object; 

var personB = new Object; 

personA.money= "100"; 

personB.money= "150"; 

personA.showMoney= showMoney; 

personB.showMoney= showMoney; 

console.log(personA.showMoney( )); //"100" 

console.log(personB.showMoney( )); //"150"

答案:

return this.money;

16、详细说明session和cookie,并指出二者的区别和适用方向

解:cookie把数据存在浏览器端,不是很安全,每个cookie还有大小限制,约为4kb,个数限制20个左右;主要用于用户登录时验证信息以及购物网站的购物车信息的保存等。

session把数据存在服务器端,但sessionID却存在于客户端,session的空间则大的多;主要存储大量信息;

17、window 的哪个属性代表状态栏的文字?

status

top

length

name

答案:A

18、下列选项中关于浏览器对象的说法错误的是

history对象记录了用户在一个浏览器中已经访问过的URLs

location对象相当于IE浏览器中的地址栏,包含关于当前URL地址的信息

location对象是history对象的父对象

location对象是window对象的子对象

答案:C location对象和history对象都是window对象的属性,兄弟属性

Window对象的history属性引用的是History对象;Window对象的location属性引用的是Location对象;它表示窗口中当前显示的内容的URL。Document对象的location属性也引用Location对象,window.location === document.lacation; //true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: