前端笔试题部分

1.下面有关 TCP 协议的描述,说法错误的是?

A. TCP 使用窗口机制进行流量控制
B. 由于 TCP 连接是全双工的,因此每个方向都必须单独进行关闭,需要四次握手
C. TCP 连接建立需要三次挥手
D. 被动关闭 socket 后,会进入到 TIME_WAIT 状态
解析: 这个题B,C,D均有问题,B项3次握手,C项4次挥手,D项进入CLOSE状态。

2. js 数组的方法中,哪些方法不能改变自身数组?

A. splice
B. concat
C. sort
D. Pop
解析: 这个选择B,其他都可以改变数组本身,arr1=[1,2],arr2=[3,4]
arr1.concat(arr2) //[1,2,3,4]
但是arr1 =[1,2]

3. 以下代码执行后,console 输出的信息是?

for(var i = 0; i < 5; i++){
requestAnimationFrame(() => console.log(i));
}
A. 1 2 3 4 5
B. 0 1 2 3 4
C. 4 4 4 4 4
D. 5 5 5 5 5
解析: 实现动画效果的方法比较多,在前端有三种:
Javascript:定时器 setTimeout (固定时间间隔不一定与屏幕刷新时间相同,会引起丢帧。)
css3 :transition 和 animation
html5 :canvas 和动画API requestAnimationFrame(请求动画帧,每次刷新的间隔中会执行一次回调函数,不会引起丢帧,不会卡顿)
这里的动画原理:计算机每16.7ms刷新一次,由于人眼的视觉停留,所以看起来是流畅的移动。
因为同步队bai列的for循环执行完成用不到16.7ms,所以当执行函数时,i=5,所以打印5个5,D项对。

4. 请给出这段代码的运行结果( )

var bb = 1;
function aa(bb) {
bb = 2;
alert(bb);
};
aa(bb);
alert(bb);
A. 1 1
B. 1 2
C. 2 1
D. 2 2
解析: 在aa函数中,bb是以传值的方式传入的,在函数中,会重新定义一个bb变量,并将其值覆为2,并不影响函数体外的bb变量,所以其值仍然为1,选C。

5. 请阅读以下代码

var obj = {};
obj.log = console.log;
obj.log.call(console,this);
该代码在浏览器中执行,输出的日志结果是什么?
A. undefined
B. window
C. console
D. obj
解析: 直接理解为:obj.log.call(console,this) =console.log(this)就行,因为call的第一个参数就是用来代替前面函数里的this对象。

6. 把鼠标移到按钮并点击时,会产生一串什么样的事件( )

A. active hover focus
B. foucs hover active
C. hover active foucus
D. hover focus active
解析: hover -> focus -> active
悬停 -> 聚焦 -> 响应,选D。

7. var arr = [];typeof arr 的结果是( )

A. array
B. function
C. object
D. undefined
解析 [],{}和null的typeof 都是object。

8 以下代码运行结果是()

for(var i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 1000);
}
A、0–9 B、10 个 10
C、10 个 9 D、无限循环
解析 每一次for循环的时候,settimeout都执行一次,但是里面的函数没有被执行,而是被放到了任务队列里面,等待执行,for循环了10次,就放了10次,当主线程执行完成后,才进入任务队列里面执行,打印10个10,选B。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值