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

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明致成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值