在当今的互联网时代,Web前端研发工程师已成为炙手可热的人才。他们负责将设计师的精美设计转化为用户友好的界面,并确保在各种设备和浏览器上的最佳用户体验。如果你对Web前端开发充满热情,并希望通过你的技术改变世界,那么我们诚邀你加入百度校招,与我们一起打造前沿的Web前端技术!下面题目,旨在考察你对Web前端的实际技能和问题解决能力。

6.下列程序的运行结果是什么?var array = []for(var i = 0; i < 3; i++) {array.push(() => i)}var newArray = array.map(el => el())console.log(newArray)
A:[3, 3, 3]
B:[0, 1, 2]
C:[function (), function (), function ()]
D:[1, NaN, NaN]
参考答案:A
7.考虑在以下代码中,文案 TEXT 的颜色是?
<style>
span.inner-text { color: yellow }
.text span { color: red }
span { color: blue }
p { color: green }
</style>
<p>
<span class="text">
<span class="inner-text">TEXT</span>
</span>
</p>
A:yellow
B:red
C:blue
D:green
参考答案:B
8.执行以下代码的输出是
var Foo = (function() {
var x = 0;
function Foo() {}
Foo.prototype.increment = function() {
++x;
console.log(x);
};
return Foo;
})();
var a = new Foo();
a.increment();
a.increment();
var b = new Foo();
a.increment();
A:1, 2, 1
B:0, 1, 0
C:0, 1, 2
D:1, 2, 3
参考答案:D
9.下面分别使用JSON.stringify 方法,返回值res 分别是()const fn = function(){}const res = JSON.stringify(fn)const num = 123const res = JSON.stringify(num)const res = JSON.stringify(NaN)const b = trueconst res = JSON.stringify(b)
A:'function'、'123'、'NaN'、'true'
B:undefined、'123'、undefined、'true'
C:undefined、'123'、'null'、'true'
D:undefined、'123'、'null'、undefined
参考答案:C
10.关于CSS变量的特性和用法,下列说法错误的有哪些?
A:通过--property:value的方式来声明一个CSS变量
B:CSS 变量只在当前元素块中生效
C:在内联样式和 CSS 选择器都可以定义 CSS 变量,且内联样式的优先级更高
D:可以通过 calc() 方法对数值类 CSS 变量进行相关的计算
参考答案:B
11.关于元素的隐藏,下列说法正确的是?
A:给元素设置样式dispaly: none,该元素将从DOM 树中被移除
B:给元素设置样式 visibility: hidden,该元素在父容器中不占用空间位置
C:给元素设置样式 opacity: 0 并绑定 click 事件,点击元素时事件触发
D:给元素设置样式 visibility: hidden 并绑定 click 事件,点击元素时事件触发
参考答案:C
12.关于CSS选择器的使用,以下说法错误的是?
A:使用相邻兄弟选择器 h1 + p {margin-top:50px;},既可以修改前邻兄弟节点的样式,也可以修改后邻兄弟节点的样式
B:使用:nth-child(0n+1)/:first-child/:nth-child(1)三个选择器的效果是一样的,都是选中第一个子元素
C:a:hover 必须被置于 a:link 和 a:visited 之后才能生效
D:a:active 必须被置于 a:hover 之后才能生效
参考答案:A
13.关于CSS预处理器,以下说法错误的是?
A:SASS/SCSS 依赖Ruby 或 Node.js 编译环境,因此需要编译后才能在浏览器使用;而 less 本身由 JavaScript 实现,可以在浏览器中完成编译并可直接使用
B:CSS 预处理器提供了模块化的代码组织方式,可以让复杂度高的 CSS 代码更易于管理
C:CSS 预处理器可以解决 CSS 属性在不同浏览器的兼容性问题
D:通过扩展变量、嵌套、混入、继承等方式,可以更好地对 CSS 进行抽象和复用
参考答案:C
14.下面java代码求一个比较大的正整数是不是回文数,比如212是回文数,返回true,-212不是回文数,返回false,正整数的长度为N,那么如下代码的时间复杂度以及空间复杂度是多少?
public boolean isPalindrome(long x) {
if (x < 0 || (x % 10 == 0 && x != 0)) {
return false;
}
long tempNum = 0;
while (x > tempNum) {
tempNum = tempNum * 10 + x % 10;
x /= 10;
}
return x == tempNum || x == tempNum / 10;
}
A:O(logN),O(1)
B:O(logN),O(logN)
C:O(N),O(1)
D:O(N),O(logN)
参考答案:A
15.Vue 是目前最流行的mvvm 框架之一,关于其组件化的描述,正确的有哪些?
A:在 created 函数里面可以获取到父组件的 dom 实例
B:使用 props 可以实现父子组件通讯,通过事件可实现子父组件通讯
C:组件注册可以全局注册和局部注册
D:组合 props 和 input 事件可实现 v-model 的双向绑定
参考答案:B,C,D
16.随着 web 应用程序规模的增长,一个 React 应用的状态模型会逐渐变得复杂,这时候通常我们会引入一些状态管理工具(如 redux)来解决这个问题,关于状态管理工具描述正确的有哪些?
A:解决了 React 应用组件之间的状态共享问题
B:时间旅行让应用状态的变化可追溯
C:Redux 中所有的状态都是只读的,每一个 action 只会产生新的状态
D:事件总线(EventBus)能代替 Redux 的所有功能
参考答案:A,B,C
17.给定一个整数数组array和一个目标值T,如果要你在该数组中找出和为T的那2个整数(一定存在这2个整数),并返回他们的数组下标。那么至少要遍历几次数组才能找出来?
A:1
B:2
C:4
D:3
参考答案:A