【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