网易: 1、已知a为不为空的数组,且变量b===a. 以下哪些方式可以清空数组, 使得a.length 与 b.length 都为 0;
b.len(0)
a = []
a.splice(0, a.length)
a = a.slice(a.length)
2、 二分法查找算法不能在下列哪个数据结构中用:(二分查找算法是在有序数组中用的较多的算法,有一下
特征:·存储在数组中·有序排列。若是链表存储就不适用)参考:A
A. sorted linkedlist 链表
B. sorted lineararray 线性数组
C. sorted binary trees 二叉树
D. sorted pointerarray 线性列表
3、 已知一棵高度为4的完全二叉树的第4层(设根为第1层)有3个叶结点,则该完全二叉树第3层的叶结点个
数是: A. 1 B. 3 C. 2 D. 4 参考:C
完全二叉树: 若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,
第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
满二叉树: 一颗深度为k且有2^k-1个结点的二叉树称为满二叉树。 除叶子结点外的所有结点均有
两个子结点。节点数达到最大值。所有叶子结点必须在同一层上。
是一个绝对的三角形,最后一层全部是叶子节点,其余各层全部是非叶子节点,
第i层上的节点数为2^(i-1);如果节点数不是1,3,7,15...中的数,肯定不是满二叉树。
比如给一个编号13的节点,那么他是基数所以他是右节点,因为节点的左右变化和数据的基偶性是
同步变化的。他的父节点是13/2=6(是从1好开始的)他的左子节点是13*2=26右子节点是13*2+1=27
4、 以下代码执行的是: setTimeout(function() {
参考:C. 3,2,1 console.log(1);
}, 100)
setTimeout(function () {
console.log(2);
}, 0)
console.log(3);
5、 下面不属于TCP协议拥塞控制部分的是() TCP的拥塞控制由4个核心算法组成:
A. 快速重传 “快速重传 ”(Fast Retransmit)、
B. 带外数据 “拥塞避免”(Congestion voidance)、
C. 慢启动 “慢启动”(Slow Start)
D. 快速恢复 “快速恢复”(Fast Recovery)
参考:B
6、 HTML5中关于section元素使用正确的是()参考:D
A. 通常将section元素用做设置样式的页面容器//标签定义文档中的节(section、区段)
B. 在没有标题的内容区块应该使用section元素// 内容或通过脚本定义行为时推荐使用div
C. 推荐使用section元素代替article元素、aside元素、或nav元素//不推荐没有标题的内容使用
D. 如果你想把一块内容分成几块时,应该使用section元素
section标签的作用是对页面上的内容进行分块,或者说对文章进行分段,请不要与有着自己的
完整的、独立的内容”的article元素混淆。
参考链接:https://blog.youkuaiyun.com/weixin_42312995/article/details/81475875
7、 对算法估计空间复杂度,关注的是()参考:C
A. 程序代码占用的空间
B. 程序运行占用的总空间
C. 程序使用的辅助空间 //临时占用的存储空间
D. 程序使用的数据空间
空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度。
一个算法所占用的存储空间:包括存储算法本身所占用的存储空间,算法的输入输出数据所占用的存储
空间和算法在运行过程中临时占用的存储空间这三个方面。
8. var arr = [] ;typeof arr 的结果是:A. array B. function C. object D. undefined
参考:C;5种简单数据类型(也称基本数据类型):Undefined、Null、Boolean、Number、String
1种复杂数据类型:Object(基本上除了上述5种,其余都是Object)
9、 JavaScript中下面选项关于this描述正确的是()参考:A/C
A. 在使用new实例化对象时,this指向这个实例对象
B. 在函数定义时,this指向全局变量
C. 当对象调用函数或者方法时,this指向这个对象
D. 在浏览器下的全局范围内,this指向全局变量
10、 某单链表中最常用的操作是在最后一个元素之后插入一个元素和删除链表中给定的元素,则下列选项正
确的是()参考:A
A. 若仅有头指针,则插入操作及删除操作均是O(n)的
B. 既有头指针又有尾指针,则插入操作及删除操作均是O(1)的
C. 增加尾指针既能提升插入操作的效率,也能提升删除操作的效率
D. 既有头指针又有尾指针,则插入操作及删除操作均是O(n)的
查找操作和删除操作都需要遍历链表,移动指针来确定元素位置,所以时间复杂度是O(n),是否有尾
指针没有影响。不查找,直接操作的时间复杂度是O(1)。所以时间复杂度是O(n)。
11、 以下代码的执行结果是什么?
var string = 'string'; 对象为true
var number = 0; 非零数字为true
var bool = true; 非空字符串为true
console.log(number || string); 其他为false
console.log(number && string); 参考:A
console.log(bool || number);
console.log(bool && number);
A. ‘string’, 0, true,0
B. ‘string’, true,0, 0
C. ‘string’, ‘string’,true, 0
D. ‘string’, 0, true,true
12、 以下意图哪个是用来描述ADAPTER(适配器)? 参考:C
A. 定义一个用于创建对象的接口,让子类决定实例化哪一个类
B. 将一个请求封装为一个对象,从而使你可用不同的请求对客户端进行参数化,对请求排队或记录请
求日志,以及支持可撤销的操作
C. 将一个类的接口转换成客户希望的另一个接口,本模式使得原本由于接口不兼容而不能一起工作
的那些类一起工作
D. 表示一个作用于某对象结构中的各元素操作,他使你可以在不改变各元素的类的前提下作用于这些
元素的新操作
适配器模式(Adapter)是将一个类(对象)的接口(方法或属性)转化成客户希望的另外一个
接口(方法或属性),适配器模式使得原本由于接口不兼容而不能一起工作
的那些类(对象)可以一些工作。速成包装器(wrapper)。
13、 一个栈的入栈顺序是1,2,3,4,5,则栈的不可能输出顺序是:参考:C
A. 12345 B. 54321 C. 43512 D. 45321
栈有两种原则,“先进先出”和“先进后出”。
A.先进先出,12345按顺序入栈,在分别出栈 B.先进后出,12345按顺序入栈,在分别出栈;
C.先进后出,1不可能在2之前先出栈 D.先进后出,1234入栈,4出栈,5入栈,5321出栈
14、 下面关于进程和线程说法不正确的是? 参考:D
A. 线程是进程的一个实体,可作为系统独立调度和分派的基本单位
B. 线程可以通过相互之间协同来完成进程所要完成的任务
C. 一个进程中多个线程可以并发执行
D. 线程之间不共享进程中的共享变量和部分环境
进程之间不共享变量和部分环境,要通过通信来实现,但是线程可以共享。
15、 从1000000000000个书中选择最小的20个数,用以下那种排序算法比较方便?
A. 归并排序 B. 快速排序 C. 插入排序 D. 堆排序
参考:D ;堆排序适合处理大量数据的排序问题http://www.jianshu.com/p/7d037c332a9d
16、 JavaScript中window对象的子对象不包含以下哪个对象?
A. document B. self C. history D. message 参考:D
window的主对象主要有如下几个: window、self、window.self三者是等价的。
document frames history location navigator screen
17. 将一个整数序列整理为升序,两趟处理后变为10,12,21,9,7,3,4,25,则采用的排序算法可能Z:(C)
A. 插入排序 第一层循环:依次遍历序列当中的每一个元素
B. 快速排序 第二层循环:将遍历得到的当前元素依次与余下的元素进行比较,
C. 选择排序 http://www.jianshu.com/p/7d037c332a9d 符合最小元素的条件,则交换。
D. 堆排序 选择排序的基本思想:比较+交换。
19. 下面可以匹配<img src=”http://image.163.com”></img>的正则表达式是? 参考:D
var a='<IMG src="http://image.163.com">'
var b=/<IMGsrc="[^"]*">/gi D. <img src=”[^”]*”></img>
var s=a.match(b) C. <img src=”[.”]*”></img>
for(var i= 0;i<s.length;i++) B. <img src=”[^”]*></img>
{ A. <img src=”[.”]*></img>
alert(s[i]);
alert(RegExp.$1)
}
20. 某系统中有12台设备,K个进程竞争使用,每个进程最多需要4台设备,该系统可能会发生死锁的K的
最小值是() A. 3 B. 5 C. 4 D. 6 参考:C
每个进程先分配(4-1=)3个设备,3*K + 1 ≤ 12,K ≤ 3.67,所以锁死的最小取值是 3 + 1 = 4.
1. 红色区域的宽度多大? 答案为80px。100-20=80px
div{
box-sizing:border-box;
width:100px;
padding:10px;
background-color:red;
background-clip:content-box;
}
2 var a=2;
var func=(function(){
var a=3; 变量提升
return function(){
a++; 找到a=3,执行a++后a=4,alert(4)
alert(a); 再执行func(),还是执行的是内存堆中的那个函数对象,
} a=4,执行a++后a=5,alert(5)
})();
func(); 正确答案选C
func(); A.3,4 B.4,4 C.4,5 D.undefiend undefined
3. 下面代码执行后,arr的值是:答案是B
var arr=[{a:1},{}]; 数组迭代方法中的一个
arr.forEach(function(item,idx){ item当前项,idx当前索引,arr数组本身
item.b=idx;
});
A.[{a:1},{}] B.[{a:1,b:0},{b:1}] C.[{a:1,b:1},{b:1}] D.[{a:1,b:0},{b:0}]
4. cookie,sessionStorage,localStorage描述正确的是答案为D
A.cookie.setItem()用来设置一个cookie 保存登陆信息
B.sessionStorage是存储在服务器端的 本地存储
C.通过localStorage.setItem()可以存储对象类型
D.浏览器重新打开时,localStorage里存储的数据依然存在。
5、 给Object扩展一个方法clone,实现深度克隆对象。
Object.prototype.clone=function(){
var newobj={};
for(var i in this){
newobj[i]=this[i];
}
retrun newobj;
}