1.下面哪几个和

[http://store.company.com/dir/page.html]

符合同源策略?( )
A. http://store.company.com/dir2/other.htm
B. https://store.company.com/dir/secure.html
C. http://store.company.com:81/dir/etc.html
D. http://news.company.com/dir/other.html

答案:A
同源表明,同协议,同域名,同端口号
端口号:http默认为80/8080/3128/8081/9080,https默认443

2.关于DOMContentLoaded和load事件说法正确的是?
A. DOMContentLoaded事件比load事件更早执行
B. load事件比DOMContentLoaded事件更早执行
C. 按监听代码从上到下先后执行
D. dom文档完全加载完后执行load事件

答案:A

在任何情况下,DOMContentLoaded的触发不需要等待图片等其他资源加载完成。当HTML部分被完全加载以及解析时,DOMContentLoaded事件会被触发,而不必等待样式表,图片或者子框架完成加载。
页面上所有资源(图片,音频,视频等)被加载以后才会触发load时间。

3.如何在 div 容器里展示

这几个字符?
A.
B.

“”

C. document.querySelector(‘div’).innerText = “ ”
D. document.querySelector(‘div’).innerHTML = “

sssssss

答案:C

innerHTML:设置或获取标签所包含的HTML与文本信息。(不含标签本身);
innerText:设置或获取标签所包含的文本信息。(不含标签本身)
outerHTML:设置或获取标签本身以及所包含的HTML与文本信息。(包含标签本身)
outText:设置或获取标签本身以及所包含的文本信息。(包含标签本身)

4.以下是哪一组全是块级元素?

A. div i h2 li
B. div p h1 ul
C. li ul h3 span
D. p h4 canvas em

答案: B

5.
<div class="box box1 box2" style="color:#222">hello</div>,
这个div里面最终的字体颜色是什么?
.box{
color:#999;
}

.box{
color:#333 !important;
}

.box2{
color:#666
}

A. #999
B. #222
C. #333
D. #666


6.以下不是box-sizing的属性是?

A. border-box
B. auto
C. content-box
D. inherit

答案: B


7.以下不是CSS伪类选择器的是?

A. :first-child()
B. :before
C. :center
D. :after

正确答案: C



8.‘-1 >>> 32 的值为( )’
A. -1
B. 1
C. 0
D. 2^32-1

正确答案: D

这个是带符号右移

这个是无符号右移
无符号右移运算符(>>>)
按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移(>>) 相同,但是对于负数来说不同。

正数

例:20 >> 2
1、首先转化为二进制,20的二进制为0001 0100
2、将二进制数向右移两位,高位补符号位(0),得到0000 0101
3、最后将二进制数转化成十进制数,0000 0101转化为十进制为5
所以,20 >> 2 = 5

负数

例:-20 >> 2
1、首先转化为二进制,20的二进制为1110 1100 //取反加1 20的二进制为0001 0100 取反得到1110 1011 加1后得到1110 1100
2、将二进制数向右移两位,高位补符号位(1),得到1111 1011
3、最后将二进制数转化成十进制数,1111 1011转化为十进制为-5 //取反 0000 0100 加1 0000 0101 因为是负数,也就是1000 0101也就是2的2次方加2的零次方 等于-5
所以,-20 >> 2 = -5

9.[1 < 2 < 3, 3 < 2 < 1] ( )

A. [true, true]
B. [true, false]
C. [false, true]
D. [false, false]

正确答案: A

[1 < 2 < 3, 3 < 2 < 1]

1<2 => true
true < 3 => true // true自动转换为1

3<2 => false
false < 1 => true //false 自动转换为0

answer: [true, true]

10.[‘1’, ‘2’, ‘3’].map(parseInt) ( )

A. [1, 2, 3]
B. [0, 1, 2]
C. [NaN, NaN, NaN]
D. [1, NaN, NaN]

正确答案: D

[‘1’, ‘2’, ‘3’].map((item, index) => {
return parseInt(item, index)
})
parseInt(‘1’, 0) // 1 默认十进制的1
parseInt(‘2’, 1) // NaN 1进制没有2
parseInt(‘3’, 2) // NaN,2进制逢2进1

ps 啥是parseInt
parseInt(‘11’,2) //二进制的11 转换成十进制应该是 3
ppppps
[‘10’,‘10’,‘10’,‘10’,‘10’].map(parseInt); // [10, NaN, 2, 3, 4]
意思是0(默认0是十进制)进制的十转换成十进制是多少 1进制的十转换成十进制是多少 二进制的10转换成十进制是多少

11.let a = { c:1 }
let b = a
a = 1
b.c = 2
a.c = (?)

A. 1
B. 2
C. undefined
D. NaN

正确答案: C

let a = { c:1 } //a的作用域指向 {c:1} 这个地址
let b = a //b的作用域指向 {c:1} 这个地址
a = 1 // a指向的作用域发生改变,指向1,但是{c:1} 这个地址还存在
b.c = 2 //改变{c:1} 这个地址中c的值为2
a.c = (?) //a指向的地址已经发生改变,没有c这个变量,所以返回undefined

12.console.log(1);
setTimeout(() => {console.log(2)}, 0);
console.log(3);
Promise.resolve(4).then(b => {
console.log(b);
});
console.log(5);

A. 1 2 3 4 5
B. 1 3 5 4 2
C. 1 4 2 3 5
D. 1 3 5 2 4

正确答案: B

console.log() -> 同步
promise -> 异步,微任务
setTimeout -> 异步,宏任务
执行顺序: 同步 > 异步,微任务 > 异步,宏任务

13.Math.abs(-6.666) 的结果是多少?

A. -6.666
B. 6
C. -6
D. 6.666

正确答案: D

Math.abs(x) 返回x的绝对值
Math.pow(x, power) 返回x的power次幂

Math.pow(…nums) 返回nums中每个数平方和的平方根

Math.sign(x) 返回表示x符号的1、0、-0或-1

Math.trunc(x) 返回x的整数部分,删除所有小数

Math.sqrt(x) 返回x的平方根

Math.cbrt(x) 返回x的立方根

Math.acos(x) 返回x的反余弦

Math.asin(x) 返回x的反正弦

Math.atan(x) 返回x的反正切

Math.cos(x) 返回x的余弦

Math.sin(x) 返回x的正弦

Math.tan(x) 返回x的正切

1.丢弃小数部分,保留整数部分

js:parseInt(7/2)

2.向上取整,有小数就整数部分加1

js: Math.ceil(7/2)

3,四舍五入.
js: Math.round(7/2)

4,向下取整

js: Math.floor(7/2)

14.替换字符串 bilibili 替换字符串中所有的b变成大写B

A. ‘bilibili’.delete(‘b’, ‘B’)
B. ‘bilibili’.replace(/b/g, ‘B’)
C. ‘bilibili’.replace(‘b’, ‘B’)
D. ‘bilibili’.toUpperCase()

正确答案: B

replace()第一个参数可以是正则表达式
/b/g的意思是:匹配所有的b字符

字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。

15.[1,2,3,4,5] 的数组的基础上 删除第一个 和 最后一位

A. [1,2,3,4,5].replace(1, -1)
B. [1,2,3,4,5].reverse(1,-1)
C. [1,2,3,4,5].toString(-1,1)
D. [1,2,3,4,5].slice(1, -1)

正确答案: D

slice(1,-1) slice不会操作原数组,会返回一个新数组 。 表示从索引为0开始截取,-1表示截取到倒数第二个,并将这个新数组返回。

16.function setname(name){
this.name = name
}
setname.prototype.printName = function(){ console.log(this.name) }
let a = new setname(“cc”)
a.name = “dd”
a.
proto.name = “ee”
a.proto.printName() // ?
a.printName() // ?

A. ee dd
B. cc dd
C. ee cc
D. ee Error

正确答案: A

首先定义了一个函数 setname()接下来定义了一个方法printname
调用new 方法生成对象传参 “cc” 此时a对象上面的name属性为cc

接下来通过a.name修改属性 此时a对象的name属性为 dd

最后修改通过a修改构造函数中的属性 --proto–

17.const players = [ {name: ‘UZI’, team: ‘RNG’, position: ‘ADC’},
{name: ‘theshy’, team: ‘IG’, position: ‘TOP’},
{name: ‘Metoer’, team: ‘BLG’, position: ‘Jungle’},
{name: ‘ADD’, team: ‘BLG’, position: ‘TOP’},
{name: ‘Scout’, team: ‘EDG’, position: ‘Middle’},
{name: ‘iBoy’, team: ‘EDG’, position: ‘ADC’},
{name: ‘Baolan’, team: ‘IG’, position: ‘Support’},
{name: ‘Xiaohu’, team: ‘RNG’, position: ‘Middle’}]
获取列表中战队名是BLG 位置上路的 选手对象?

A. players.filter(x=> x.position === ‘TOP’ && x.team === ‘BLG’)
B. players.get(position=‘TOP’, team=‘BLG’)
C. players.find(position=‘TOP’, team=‘BLG’)
D. players.findOne(position=‘TOP’, team=‘BLG’)

正确答案: A

players.filter(item=>item.position === ‘TOP’ && item.team === ‘BLG’)
[{name: “ADD”, team: “BLG”, position: “TOP”}]

players.find(item=> item.position===‘TOP’ && item.team === ‘BLG’)
{name: “ADD”, team: “BLG”, position: “TOP”}

18.找出有序数组(从小到大排列)中和为sum的两个数,要求复杂度为O(n),找到一组即可

答案:

function solve (arr, target) {let i = 0;let j = arr.length - 1;let first, last;while (i < j) {first = arr[i];last = arr[j];const sum = first + last;if (sum === target) return [first, last];else if (sum > target) j--;else i++;}return null;
}

19.**判断由"()[]{}"6种括号组成的字符串是否合法

  1. 所有括号必须闭合
  2. 左括号必须在正确的位置闭合**

1.利用 map 实现一一对应
2.利用栈

function IsValue(str) {let map = new Map([['(',')'],['{','}'],['[',']']])let stack = [];for(let i = 0 ; i < str.length ; i ++) {if(map.has(str[i])) { // 在左边stack.push(str[i])} else { // 在右边if(stack.length == 0) return false;let top = stack[stack.length - 1]; // 栈顶元素if(map.get(top) == str[i]) {stack.pop()} else {return false;}}}return true;
}while(line = readline()) {var str = line;print(IsValue(str))
}

不利用其他函数,直接判断,简单容易理解

var str = readline();
var n = str.length;
var arr = [];
var j=0;
for(var i=0;i<n;i++){switch(str[i]){case '(':arr[j++] = '(';break;case '[':arr[j++] = '[';break;case '{':arr[j++] = '{';break;case ')':if(arr[j-1]=='('){j--;}else{i=n;//跳出}break;case ']':if(arr[j-1]=='['){j--;}else{i=n;//跳出}break;case '}':if(arr[j-1]=='{'){j--;}else{i=n;//跳出}break;}
}
if(j==0){console.log("true");
}else{console.log("false");
}

20.有n级台阶,每一步可以走1级或2级,问一共有多少种走法

使用数组保存变量。比使用递归节省时间。。。

   function NumberOf1(number) {// write code herevar arr = [1, 2]for (var i = 2; i < number; i++) {arr[i] = arr[i - 1] + arr[i - 2]}return arr[number - 1]}

就是一道斐波那契数列的经典问题,学习算法基础递归的时候老师都有讲。

while (line = readline()) {var n = parseInt(line);var res = fibonacci(n);print(res);
}function fibonacci(n) {// 递归基if (n <= 1) {return 1;}// 递归计算实例return fibonacci(n - 1) + fibonacci(n - 2);
}

共n个楼梯,第一次跳1阶,后面还有n-1,有n-1种跳法;第一次跳两个台阶,后面还有n-2,有n-2种跳法。所以递归方式是f(n-1)+f(n-2)

function getStairs(stair) {if(stair <= 0) {return0}if(stair === 1) {return1}if(stair === 2) {return2}return getStairs(stair - 1) + getStairs(stair - 2)
}conststair = parseInt(readline())
console.log(getStairs(stair))

哔哩哔哩2020校园招聘前端笔试题(卷一)相关推荐

  1. 哔哩哔哩2020校园招聘前端笔试卷(一)答案解析

    第一题: 同源策略:协议 http和https不同 域名 store.company.com和news.company.com不同 端口号:http默认 80/8080/3128/8081/9098 ...

  2. 哔哩哔哩2020校园招聘前端笔试卷(一)

    在数组里面找数的==>双指针 1.以下不是CSS伪类选择器的是? 2. ['1', '2', '3'].map(parseInt) ( ) ['1', '2', '3'].map((item, ...

  3. 去哪儿网2015校园招聘前端笔试题

    原文链接:http://www.dy1280.com/thread-601-1-1.html 我应聘的是前端工程师.笔试就考了四道前端题,个人觉得基础倒是考到了,但是前端方面的知识没有多大联系,四道题 ...

  4. 乐信2020校园招聘数据笔试题[试题整理]

    1. DB.DBMS和DBS三者之间的关系是 正确答案: B DB包括DBMS和DBS DBS包括DB和DBMS DBMS包括DB和DBS 不能相互包括 DBS(Database System) 包含 ...

  5. B站校园招聘后端笔试题(一)

    大家好,我是勾玉! 今天,我给大家带来了哔哩哔哩2020校园招聘后端笔试题,包括28道选择题和3道编程题,因为内容较多,我将分三期来讲,对每道题都给出答案以及解释~ 1.在Java中下面哪个对类的声明 ...

  6. 华为机试python打印机_华为校园招聘上机笔试题 扑克牌大小(python)

    本文为大家分享了华为校园招聘上机笔试题,供大家参考,具体内容如下 [编程题] 扑克牌大小 时间限制:10秒 空间限制:131072K 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各 ...

  7. 华为2016校园招聘上机笔试题

    华为2016校园招聘上机笔试题 > 扑克牌大小 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张.牌面从小到大用如下字符和字符串表示(其中,小写joke ...

  8. 【csq加油】华为2016校园招聘上机笔试题(一)

    华为2016校园招聘上机笔试题(一) 题目: 老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问.当然,老师有时候需要更新某位同学的成绩. 题目描述: 每组输入第一行是两个正整数N ...

  9. 2014 360校园招聘技术类笔试题

    接下来的面试题传送门: 2014 360校园招聘技术类面试题 选择题 小毕最近电脑很慢,怀疑是中了病毒,于是找了三款杀毒软件扫描了一下: A软件扫描结果:如果中了病毒X,那么也可能中了病毒Y B软件扫 ...

最新文章

  1. 【微信小程序】java中类和对象的区别
  2. 产品设计眼中的运营,互联网营销
  3. 「多图」图解10大CNN架构
  4. NSDate与NSDateFormatter的相关用法
  5. php如何检测图片背景是白色,javascript – 用PHP检测白色图像背景?
  6. 惹怒程序员的十件事!需求变更居然不被排第一!
  7. LINQ语句的两种语法实现方式
  8. 判别分析分为r型和q型吗_SPSS聚类和判别分析参考.ppt
  9. P3864 [USACO1.2]命名那个数字 Name That Number
  10. 【图文】如何在centos上安装tomcat
  11. linux网络绑定和网络成祖,圣斗士之家
  12. 音频信号转为开关控制信号_基于CPCI总线控制卡的信号完整性设计
  13. linux的键盘命令用户登录,linux 基础命令
  14. 移动端日历---纯**自己写的
  15. uniapp上拉加载
  16. 《曹云社》论道中国企业管理 剖析八家企业落地中台实践
  17. phpstorm误删文件恢复
  18. 快慢缓急总相宜|ONES 人物
  19. 小鲲Python嘎嘎炫~day1
  20. 1135:配对碱基链

热门文章

  1. 人生观,世界观,价值观树立的方式
  2. 微信公众号数据2019_2019年9月原创公众号排行榜数据报告出炉
  3. 推荐很nice英文文献翻译软件
  4. 宠物经济:吃、用、病、葬都是生意
  5. 服务器光纤信号灯,光纤收发器的六个指示灯都代表什么?
  6. html名人名言页面,HTML5 纪念卡 | 名人名言卡
  7. 超火的口红机源码分享
  8. LINUX MMC 子系统分析之五 MMC driver模块分析
  9. 《幸福人生 从心开始》讲座参后感
  10. excel将大表分解成小表,将小表合成一个大表