近日,做了cvte提前批的试题,深感自己的不足,于是将题目晒出来。
选择题
1下面代码的输出结果是?
var array1=Array(3);
array1[0]=2;
var result=array1.map(element=>’1’);
console.log(result);
A. [2,’1’,’1’]
B. 都不对
C. [‘1’,’1’,’1’]
D. [2,0,0]
2.以下对CORS描述正确的是?
A.CORS克服了AJAX只能同源使用的限制
B.Access-Control-Allow-Origin可以设置一个域名或‘*’
C.CORS请求时,GET方法不需要预请求(Options请求)
D. CORS可以携带cookie
3. 以下关于package.json中npm依赖包的版本描述,错误的是?
A. *:接受大版本更新
B.1.0:只打算接受补丁版本的更新
C. 1.0.x:只打算接受补丁版本的更新
D. ~1.0.4:接受小版本的更新
4. 以下哪些是主流浏览器支持的HTTP方法?
A.POST
B.PULL
C. PUSH
D. PUT
5. 设有5000个待排序的关键字,如果需要用最快的方法选出其中最小的10个关键字,则用下列()方法可以达到此目的。
A. 归并排序
B.堆排序
C. 快速排序
D. 简单选择排序
6.下列关于函数参数的描述中,正确的是
A.不会对参数进行类型检查
B. 实际参数可以比形式参数少
C. 超出的参数会被设置为undefined
D. 函数调用时会产生一个argument数组
7. 关于Web Worker说法正确的是?
A.Web Worker是HTML5提供的一个javascript多线程解决方案
B.Web Worker可使用terminate()中止
C. Web Worker可以修改HTML元素
D. Web Worker线程不能修改全局变量和Window.location
8. 下列关于线性表,二叉平衡树,哈希表存储数据的优劣描述正确的是?
A.平衡二叉树插入节点速度快
B. 线性表实现相对比较简单
C. 哈希表是一个在时间和空间上做出权衡的经典例子,如果没有内存限制,那么可以直接将键作为数组的索引,此时其查找的时间复杂度是o(1)
D. 平衡二叉树的各项操作的时间复杂度都是o(logn)
9. 已知一算术中缀表达式为A-(B+C)*D+F/G,则可算出其后缀表达式为()
A.ABC+D*-FG+/
B.ABC+D-*FG+/
C. ABC+D-*FG/+
D. ABC+D*-FG/+
10.在顺序表(3,6,7,12,14,16,18,20,21,25,30)中,用二分查找关键码13,则所需关键码比较次数为()
A.2
B.5
C.3
D.4
11. 下面代码运行后的结果是?
for(var i=0;i<5;i++){
(function(i){
setTimeout(function(){console.log(i)},0)
})(i)
}
A.4 4 4 4 4
B.1 2 3 4 5
C.0 1 2 3 4
D.5 5 5 5 5
12.回溯算法常用以下哪种算法来搜索解?
A.广度优先算法
B. 线性规划策略
C.决策树
D.深度优先算法
13. 下面代码的输出结果是?
var elements=[‘Fire’,’Wind’,’Rain’];
console.log(elements.join(‘,’));
A.Fire,Wind,Rain
B.[“Fire,Wind,Rain“];
C. “Fire“,“Wind“,“Rain“
D. [“Fire“,“Wind“,“Rain“];
14. 以下关于FileReader说法正确的是?
A.onload事件,文件开始读取时触发
B.readAsText方法有3个参数,其中第二个参数是文本的编码方式
C. onabort事件,中断时触发
D. readAsBinaryString,该方法将文件读取为二进制字符串
15. 下面代码能阻止事件冒泡的有?
A.event.cancelBubble=true;
B. e.prevetDefault();
C. event.retrunValue=false;
D. e.stopPropagation();
16. 定义一个函数:
var setPerson=function(person){
person.name=’kevin’;
person={name:’rick’};
}
var person={name:’alan’);
setPerson(person);
alert(person.name);
alert结果为?
A. kevin
B.undefined
C. rick
D.alan
17. 下面代码运行结果是?
for(var i={j:0};i.j<5;i.j++){
(function(i){
setTimeout(function(){
console.log(i.j},0)
})(JSON.parse(JSON.stringify(i)))
}
A.5 5 5 5 5
B.0 1 2 3 4
C.4 4 4 4 4
D.1 2 3 4 5
18. 请选择合适的代码块,使得下面程序运行符合预期
function A(){
this.hi=function(){
alert(‘hi’);
}
}
A.prototype.say=function(){
alert(‘say’);
}
function B(){}
//此处填充代码
var b=new B();
b.hi();
b.say();
A.B.prototype=A;
B.B.prototype=A.prototype;
C.B.prototype=new A();
D.B.prototype=A.prototype._proto_;
19.下面关于line-height说法正确的是?
A.设定line-height值少于font-size值,那么元素高度为font-size的值
B.line-height属性会被继承
C.在inline元素设置line-height不会生效
D.line-height设为150%或1.5的效果是一样的
20.以下正则表达式正确的是?
A./^[A-Za-z0-9]+$/:由26个英文字母和数字组成的字符串
B./^(-?\d?)(\d+)?$/:非零整数
C./-?\d+$/:负整数
D./^(-?)\d+/:整数
21.下面关于CSS选择器说法正确的是?
A.[src^=”https”]选择src属性值以”https”结尾的每个元素
B.类和伪类的选择器权重相同
C.input:checked选择每个被选中的input元素
D.内联样式权重是最高的
22.下面说法正确的是?
A.构造函数的this指向构造函数本身
B.构造函数中不能出现return语句
C.JavaScript中,使用new可以创建一个对象
D.构造函数与普通函数的区别是构造函数可以使用new调用,而普通函数不行
23.以下说法,正确的是?
A.let声明的变量,不可以被修改
B.let声明的变量,可以被修改
C.let声明的变量,只在当前代码块有效
D.let声明的变量,存在变量提升
24.如下JavaScript代码,在浏览器运行的结果是?
var a=2018<0 ||typeof(2018+’’);
console.log(a);
A.string
B. undefined
C. fasle
D.true
25.关于generator的描述以下错误的是?
A.普通函数不可以使用yield
B.yield后面可以是任意值
C. generator函数初始化会自动执行,如果遇到异步操作并使用了yield时会等待器完成再继续
D. generator函数需要通过new关键字进行调用
26. 下面选项中给submit按钮绑定click时间正确的有?
A. btn.attachEvent(‘onclick’,fun);
B. btn.addEventListener(‘click’,fun,false);
C.btn.dispatchEvent(‘click’,fun,false);
D. btn.detachEvent(‘onclick’,fun);
27. 以下这段代码的执行结果是?
var execFunc=()=>console.log(‘executed’);
setTimeout(execFunc,0);
console.log(‘changed’);
execFunc=()=>console.log(‘another executed’);
A. executed changed
B.changed executed
C. another executed changed
D. changed another executed
28.在javascript中,通过哪个方法不可以判别变量X为数组?
A. typeof x==’array’
B. x._type==’array’
C. Object.prototype.toString.call(arr).slice(8,-1).toLowerCase()==’array’
D. Object.type(arr)
编程题
29.请实现这样一个函数,输入参数为一个长度为2n的整数数组,以两个整数一组的方式将数据分组,并使每组数据最小值相加为最大,输出这个最大值。
例如
输入[1,4,3,2]输出为4
输入[1,5,7,9,4,12]输出为15