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

1、var a = [1,4,5,2,9];
下面求a中最大值正确的是
Math.max(a)
Array.max(a)
Math.max.call(null,a)
Math.max.apply(null,a)
以上均不是
答案:D
2、页面有一个按钮button id为button1,通过原生的js如何禁用?()
document.getElementById(“button1”).setAttribute(“Readolny”,true);
document.getElementById(“button1”).setAttribute(“disabled”,”true”);
document.getElementById(“button1”).Readolny=true;
document.getElementById(“button1”).disabled=true;
答案:BD
说明:Readonly用在文本域中
3、JavaScript 有下列哪些原始类型?
string
全部都是
number
Boolean
答案:B
4、
var F=function(){};
Object.prototype.a=function(){};
Function.prototype .b=function(){};
var f=new F();
关于这段代码正确的结论是:()
f能取到a,但取不到b
f能取到a,b
F能取到b,不能取到a
F能取到a,不能取到b
答案:A var F=function(){}创建的F是一个普通对象
说明:普通对象继承靠的是__proto__,不是prototype
5、如何进行前端性能优化?简述几种常用的方法。
答案:
1. 减少 http 请求数(合并 css、js,图片精灵等)    
2. 压缩 js、css 代码    
3. 优化js代码,减少页面重排    
4. 使用 web worker 来处理计算量大的代码    
5. 使用客户端缓存    
6. 静态资源放到 cdn 上    
7. 使用 ySlow,pagespeed slight 工具来检查页面还需要哪些改进
6、实现一个定时输出函数,传入一个正整数参数n,从 1 开始每隔 1s 递增输出整数,直到等于 n为止。
答案:
var output=function(n){
var i=1;
var timer=setInterval(function(){
console.log(i++);
if (i>n) {
clearInterval(timer);
}
},1000);
}
output(3);
7、
function A() {
    this.do=function() {return 'foo';};
}
A.prototype=function() {
this.do=function() {return 'bar'};
};
var x=new A().do();
x 的值是:
bar
报错
foo
undefined
答案:C
说明:如果实例中有所要找的方法就不会往原型链上找;如果在new之后再重写原型,则其constructor就会被打断,需要重新指定。
8、在HTML页面上包含如下所示的层对象,则javascript语句document.getElementById(“info”).innerHTML的值是()
<div id=”info” style=”display:block”><p>请填写</p></div>
请填写
<p>请填写</p>
id=”info” style=”display:block”
<div id=”info” style=”display:block”><p>请填写</p></div>
答案:B
说明:innerHTML指的是开始标签与结束标签之间的HTML;innerTEXT指的是开始标签与结束标签之间的文字内容。
9、
console.log(([])?true:false);
console.log(([]==false?true:false));
console.log(({}==false)?true:false)
得到的结果分别是什么?()
false true true
true true true
true false true
true true false
答案:D
说明:==比较时先将待比较的内容转换成Number类型在比较;
Boolean([]); //true
Number([]); //0
Number({}); // NaN
Number(false); //0
则:
console.log(([])?true:fasle);// => console.log((true)?true:false);
console.log([]==false?true:false); // => console.log(0==0?true:false);
console.log(({}==false)?true:false); // => console.log((NaN==0)?true:false);
10、请简要描述闭包原理及应用。
答案:闭包就是函数里边套函数,内部函数总是可以访问其所在的外部函数中声明的参数和变量,即使在其外部函数被返回(寿命终结)了之后。
作用:①在对象中创建私有作用域②模仿块级作用域
副作用:闭包只能访问到包含函数中任何变量的最后一个值。

11、

以上 javascript 代码,在浏览器中运行的结果是
1 2 3
undefined 2 1
报错
1 2 1
答案:A
解:传入的参数是应用类型;foo.n=3改变了形参和全局变量foo的值;虽然局部变量foo会变量声明提前到函数最顶端,但此时有形参foo的值,所以不会导致第一次输出为undefined。如果参数是按值传递,则foo=3只会改变形参的值,不会改变全局变量的值。结果就是1,2,1了
12、在前提:var arr =[1,3,2]下,下面哪个操作会返回一个数组,并且是arr?
arr.push(3)
arr.reverse()
[].concat.call(arr,[])
[].sort.call(arr)
答案:C
解:arr.push(3) //返回新数组的长度4
arr.reverse()  //返回反转后的新数组[2,3,1]
[].concat.call(arr,[])  //返回连接后的新数组,不过此处还是arr
[].sort.call(arr)  //返回排序后的新数组[1,2,3]
13、[不定项选择题]
下列 JS 框架中,系列不包含开箱即用的 UI 控件和小部件的是()
MooTools
ExtJS
jQuery
YUI
答案:AC

14、

结果输出?
答案:false
解:首先a数组是一个有值的对象,执行if语句;[0]转换为Number类型是0,true转换为Number类型是1,==比较当然是false;如果是[0]===0比较,结果还是false,因为他们的类型不等。
15、放在 HTML 里的哪一部分 JavaScripts 会在页面加载的时候被执行? ()
文件头部位置
文件尾
<head>标签部分
<body>标签部分
答案:D
解:在HTML body部分中的JavaScripts会在页面加载的时候被执行。 在HTML head部分中的JavaScripts会在被调用的时候才执行。
16、
(function() {
var x=foo();
var foo=function foo() {
return “foobar”
};
return x;
})();
foo()
类型错误
undefined
foobar
答案:B
解:变量提升,但是函数表达式不会提升。 x在foo之前赋值,此时foo是undefined。运行到x = foo();时,当然会报错。 如果把x定义放在foo的后面,就不会报错。
17、面给定的代码中, myFunc() 返回什么?
var foo=’foo’;
var bar=’bar’;
function myFunc() {
return foo+bar;
}
抛出异常,超出访问范围
undefined
foobar
foo+bar
NaN
答案:C
解:全局变量是可以被函数访问到的。
18、简述instanceof和typeof的区别?
简述[ ] instanceof Object的值和原因?
答案:
instanceof用来检查一个对象是否是某个构造函数的实例;typeof用来检查对象是否赋值,获取对象的基本类型。
true,数组也是对象。任何引用类型的值(对象)都是Object的实例。
19、[不定项选择题]
下面哪些属于JavaScript的typeof运算符的可能结果:()
symbol
NaN
boolean
null
array
undefined
string
答案:ACFG
解:
typeof Symbol()    //"symbol"
typeof Number()    //"number" 
typeof String()    //"string" 
typeof Function()    //"function"  
typeof Object()    //"object"  
typeof Boolean()    //"boolean" 
typeof null    //"object" 
typeof undefined    //"undefined"
20、以下哪一个不是JavaScript的数据类型:
String
Boolean
Undefined
Integer
答案:D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

明致成

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

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

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

打赏作者

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

抵扣说明:

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

余额充值