前端面试笔试题

【2022】58同城前端笔试_我只会写Bug啊的博客-CSDN博客


1. 以下代码输出

console.log([1,2,3,4,5].splice(1,2,3,4,5));
console.log([1,2,3,4,5].slice(1,2,3,4,5));

[2,3]和[2]

解析

splice语法:let newArr = arr.splice(起始索引index, 删除的个数, 新增元素1, 新增元素2...)   // 返回被删除元素组成的新数组,改变原数组

arr.splice(起始索引index, 删除的个数...):删除的元素组成的数组

newArr:删除元素后的原数组与新增加的元素组成的数组

题目中原数组为[1,2,3,4,5],splice后删除开始索引为1,即数组中数值为2的元素,开始向后数2个元素,即2和3,而newArr的元素则为原数组去除2和3后,在同一位置插入3,4,5的新数组

slice语法:slice()接受一个或两个参数,即要返回项的起始和结束位置。当只给slice()传递一个参数时,该方法返回从该参数指定位置开始到当前数组末尾的所有项,不改变原数组

新数组:起始索引为1,结束索引为2(不包括结束索引),后面参数则为多余的

2. 求root元素的高 (通过getComputedStyle(root).height计算) 为?

<html>
<body>
<div id="root" style="border:1px solid red;">
    <div style="width:10px;height:10px;margin:10px;"></div>
    <div style="width:10px;height:10px;margin:20px;"></div>
</div>
</body>
</html>

70px

3. 假定某次上线,1小时内出bug的概率为50%,那么3小时内出bug的概率是?

87.5%

反向推:3小时内不出BUG的概率是0.5*0.5*0.5=0.125,则出概率就是1-0.125=0.875
正向推:1/2 +(1/2)² +(1/2) ³=7/8

4. 以下代码执行返回?

parseInt('0x111')

273

解析:0x开头代表十六进制

111转换为十六进制公式:1*16^2+1*16^1+1*16^0=256+16+1=273

5. 下边关于https描述正确的是:


客户端会对服务器下发的证书进行域名校验

6. 下边关于XSS描述正确的是


XSS攻击需要也服务器对接口进行防护

7. 以下运行结果:?

for(var i = 0; i < 10; i++) {
    setTimeout(function() {
        console.log(i);
    }, 1000);
}
10个10

把var改成let则会输入0-9

区别是作用域不同

8. 在跨域请求中,下列请求头中哪种content-type一定会触发cors预检查?


application/json

9. 下面代码输出结果正确的是?

function Setcount(count){
this.count=count // 赋值
}

Setcount.prototype.printCount=function(){
console.log(this.count) // 给Setcount的原型上添加printCount方法
}

let a = new Setcount(100)
a.count =200 // 改变
a.__proto__.count=300
a.__proto__.printCount()
a.printCount()

300,200

js对于找不到的方法,会沿着原型链向上找

this指向调用它的那个方法

10. 关于position定位,下列说法正确的是

z-index属性对元素position属性为relative,absolute, fixed都可以做层级设置

11. 请选择console打印的正确值?

Object.prototype.foo = 'Object';
Function.prototype.foo = 'Function';
function Animal () {};
var cat = new Animal();
console.log(cat.foo);
console.log(Animal.foo);

Object Function

12. 请选择正确的输出结果?

var bar = [1,2,3]; 
for(var i in bar) {
    setTimeout(function(){
        console.log(bar[i])}
    ,0);
    console.log(bar[i]);
}


123和333

先执行普通方法里的打印,后执行宏任务的打印,由于var为全局作用域,执行宏任务时i已经变为了3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值