亚信实习前端笔试2023(自用复盘含解析版)

啥也不会的猪 2024-06-22 15:33:02 阅读 75

1.以下路由代码中,如果现在跳转到“/inbox/messages/3”,浏览器链接栏中显示的路由为```jsx (D)

​ <Redirect from=“messages/:id” to=“/messages/:id” />

​ ```

A./inbox/messages/3

B.messages/3

C./inbox/messages

D./messages/3

组件用于路由的跳转,即用户访问一个路由,会自动跳转到另一个路由,访问/inbox/messages/3,会自动跳转到/messages/3

2.下列关于scoped的描述错误的是(B)

A.scoped原理是在标签上添加data-v属性,然后使用属性选择器实现样式局部化

B.使用scoped,父组件的样式会渗透到子组件内部的元素

C.使用scoped不会造成全局污染

D.">"可以实现样式穿透

使用scoped后,父组件的样式将不会渗透到子组件中。不过一个子组件的根节点会同时受其父组件的scoped css和子组件的scoped css的影响。这样设计是为了让父组件可以从布局的角度出发,调整其子组件根元素的样式

3.在React中渲染列表应该使用哪种方法?(A)

A.map()

B.reduce()

C.createList()

D.every()

没学react。

map()方法将数组中的每个元素变成标签,最后将得到的标签数组插入父元素即可。

4.关于Vue组件化说法错误的是(B)

A. 所谓组件化,就是把页面拆分成多个组件 (component),每个组件依赖的 CSS、JavaScript、模板、图片等资源放在一起开发和维护

B. 组件是资源独立的,组件在系统内部可复用,但是组件和组件之间不可以嵌套

C. vue的组件之间可以进行通信

D. 组件化能提高开发效率,方便重复使用,简化调试步骤,提升项目可维护性,便于多人协同开发

组件和组件之间可以嵌套

5.下列哪个查找最快?(A)

A.哈希表法(散列表)

B.顺序查找

C.二分查找

D.二叉排序树查找

不太记得哈希表法,但猜对

哈希表法:O(1)

顺序查找:O(n)

二分查找/二叉排序树查找:O(logn)

6.Class内部有一handleClick方法如下代码块,在点击事件中触发handleClick的正确方法是?(A)

handleClick(){ console.log('this.state:',this.state); }

A.onClick={ () => this.handleClick()}

B.onClick={ this.handleClick()}

C.onClick={ this.handleClick}

D.οnclick={ handleClick}

js中,class方法不会绑定this,所以调用时要加this

react绑定事件的方法,没学过不了解

7.执行以下程序,下列选项中,说法正确的是(C

class Dog{ static dog(){ console.log(this); ...① } bark(){ console.log('狗会叫'); }}var dog = new Dog();

A.①式的this指代类的实例对象

B.调用dog方法,既可以使用Dog.dog(),也可以使用dog.dog()

C.调用bark方法,只能使用dog.bark(),不能使用Dog.bark()

D.在类中,不允许静态方法和非静态方法重名

直接用类调用,只能调用静态。

而且,静态方法只能由类进行调用。

静态方法和非静态方法不会引起歧义,所以可以重名。

8.有如下代码,最终渲染出来的div元素的class属性值是( B )

有如下模板:

<div class="static" v-bind:class="{ active: isActive, 'text-danger': hasError }"></div>

和如下data:

data: { isActive: true, hasError: false}

A.static isActive

B.static active

C.static hasError

D.isActive

IsActive==true,所以active属性生效

9.下列关于Vue响应式的描述错误的是( C

A.当利用索引值设置一个数组项时,Vue不能检测到数组的变动

B.当修改数组的长度时,Vue不能检测到数组的变动

C.Vue可以监听对象属性的添加或删除

D.可以通过Vue.set()方法向嵌套对象添加响应式属性

由于 JavaScript 的限制,Vue 不能检测数组和对象的变化,因而对象属性的添加或删除不可以监听到。

10.若有一个顺序有序表A[1:18] 中有18个元素,现进行二分查找,则查找 A[3]的比较序列的下标依次为(D )。

A.1,2,3

B.9,5,2,3

C.9,5,3

D.9,4,2,3

二分法除以2时向下取整。

11.如果想要在组件第一次加载后获取该组件的dom元素,应当在以下哪个生命周期中进行(B)

A.componentDidUpdate()

B.componentDidMount()

C.componentWillUnmount()

D.shouldComponentUpdate()

react生命周期函数,不太了解

12.执行以下程序,当用户在prompt输入框中输入0时,输出结果为(B

var num = prompt('请输入分母:')try{ console.log('a'); value = 0 / num; console.log('b');}catch(e){ console.log('c');}finally{ console.log('d');}

A.a c d

B.a b d

C.a b c d

D.a b c

在js中,0是可以作分母的,0/0的结果为NaN,并不会抛出异常。

不管有没有异常,finally都会执行。

13.下面是对refs使用不合适的是(D)

A.集成第三方DOM库

B.触发强制动画

C.管理焦点,文本选择或媒体播放

D.获取子组件的实例,直接通过子组件的setstate方法修改子组件的state

react

14.关于以下 URL的描述错误的是(A

A.http表明使用TCP协议

B.又名统一资源定位符,方便确定一个资源,并表示出它在哪里

C.URL中隐藏了端口号,默认是80端口

D.访问URL可使用大写字母

http只能表明使用了HTTP协议,默认80端口

15.下列不属于Vue的特点的是( D)?

A.Vue.js的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进DOM的系统

B.实现了双向数据绑定

C.Vue.js可以进行组件化开发,使代码编写量大大减少,读者更加易于理解D.Vue虽然也提供了渲染函数,默认使用模板渲染,且不支持JSX

支持JSX

16.关于Vue组件的生命周期说法错误的是(C )

A.mounted钩子函数中,可以直接获取DOM元素

B.beforeMount钩子函数中,不可以直接获取DOM元素

C.beforeDestroy钩子函数中,不可以直接获取DOM元素

D.destroyed钩子函数中,不可以直接获取DOM元素

beforeDestroy还没销毁,可以获取

17.现有以下代码, 打印的结果是( A )

new Vue({ data: { a: 'first', b: 'second' }, created: function () { console.log(this.a) }, mounted(){ console.log(this.b) }})

A.‘first’

B.‘first’ ‘second’

C.undefined undefined

D.空

只创建了还没挂载,所以mounted不执行

如果写了el:'app’就挂载了

18.执行以下程序后,x的值为(A)

var x=0;switch(++x){ case :++x; case 1:++X; case 2:++x;}

A.3

B.4

C.2

D.1

19.下列关于客户端渲染和服务器端渲染的描述错误的是(D )

A.服务器端渲染有利于SEO,且首页加载快

B.客户端渲染节省后端资源,但可能会加载慢出现白屏

C.服务器端渲染耗费流量,局部页面的变化也需要重新请求完整的页面

D.客户端和服务器端在首屏渲染上网络请求次数是一样的

服务器端只请求一次

客户端先拿到空的html模板,之后再发起数据请求

20.关于keep-alive说法错误的是(D )

A.keep-alive可以通过include属性,匹配要进行缓存的组件

B.当组件在keep-alive内被切换,它的activated和deactivated这两个生命周期钩子函数将会被对应执行

C.keep-alive自身不会渲染为一个 DOM 元素,也不会出现在组件的父组件链中

D.max属性控制最多可以缓存多少组件实例。一旦这个数字达到了,新创建的实例则不能再进行缓存

最久没访问的实例会被销毁,新创建的可以缓存

21.要在下面代码中组件的props上进行类型检查,可以使用(C

import PropTypes from 'prop-types'; class Greeting extends React.Component { render() { return ( <h1>Hello, { this.props.name}</h1> ); } }

A.Greeting.propType = {name: PropTypes.string};

B.Greeting.propsType = {name: PropTypes.string};

C.Greeting.propTypes = {name: PropTypes.string};

D.Greeting.proptypes = {name: PropTypes.string};

没看懂

22.下列关于vue-lazyload的描述错误的是( B

A.组件中使用vue-lazyload时,v-lazy代替v-bind:src

B.组件中使用vue-lazyload时,必须要加:key属性

C.vue-lazyload指令可以实现图片的懒加载

D.使用vue-lazyload时,扩展功能api中的attempt代表尝试加载图片数量

可以不加:key,但可能会出问题,比如刷新页面时由于key相同,图片不刷新。

23.以下不是vue内置指令的是(D )

A.v-html

B.v-on

C.v-for

D.v-hidden

没见过v-hidden

24.下列关于Vue的描述错误的是( B

A.当给某个组件修改某个值时,该组件不会立即重新渲染

B.Vue内部使用原生Promise.then、MutationObserver和setImmediate实现异步队列,不会采用setTimeout(fn, 0)

C.$nextTick()返回一个Promise对象

D.$nextTick()可以配合async/await使用

Vue 在内部对异步队列尝试使用原生的 Promise.then、MutationObserver 和 setImmediate,如果执行环境不支持,则会采用 setTimeout(fn, 0) 代替

没看懂。

25.关于Animation-timing-function下列说法正确的是? (B)

A.linear是默认动画,动画从头到尾的速度是相同的

B.ease是默认动画,动画以低速开始,然后加快,在结束前变慢

C.cubic-bezier(n, n, n, n),在cubic-bezier 函数中自己的值。可能的值是从0到100的数值

D.ease-in动画以低速结束

A.默认不是linear,是ease

C.可能的值是0-1

D.动画以低速开始

26.对于下列二叉树,进行前序遍历的结果为(C

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HnO7t2eF-1681053819003)(亚信web.assets/102_1412686818517_图片1.png)]

A. DYBEAFCZX

B. YDEBFZXCA

C. ABDYECFXZ

D. ABCDEFXYZ

前序遍历:根、左、右

27.下列关于v-for说法错误的是( C)

A.v-for指令基于一个数组来渲染一个列表

B.v-for指令需要使用item in items形式的特殊语法,其中items是源数据数组,而item则是被迭代的数组元素的别名

C.不可以用v-for来遍历一个对象的property

D.v-for在使用的时候最好添加key,且key最好不是索引

可以用v-for来遍历一个对象的property(属性)

28.下列content-type那个在post跨域请求时会发出options请求(B)

A.application/x-www-form-urlencoded

B.application/json

C.multipart/form-data

D.text/plain

options请求:预检请求,一种探测请求以确定针对某个目标地址的请求必须具有怎样的约束。

当请求满足下述任一条件时,即应首先发送预检请求(使用OPTIONS)

1、使用了下面任一 HTTP 方法:

PUT

DELETE

CONNECT

OPTIONS

TRACE

PATCH

2、人为设置了对 CORS 安全的首部字段集合之外的其他首部字段。该集合为:

Accept

Accept-Language

Content-Language

Content-Type (but note the additional requirements below)

DPR

Downlink

Save-Data

Viewport-Width

Width

3、Content-Type 的值不属于下列之一:

application/x-www-form-urlencoded

multipart/form-data

text/plain

29.以下关于ReactDOM.render说法错误的是 (B)

A.ReactDOM.render() 会控制你传入容器节点里的内容

B.ReactDOM.render() 会修改容器节点以及其子节点

C.ReactDOM.render() 目前会返回对根组件 ReactComponent 实例的引用

D.使用 ReactDOM.render() 对服务端渲染容器进行 hydrate 操作的方式已经被废弃,并且会在 React 17 被移除

react 不太懂

ReactDOM.render() 不会修改容器节点(只会修改容器的子节点)。可以在不覆盖现有子节点的情况下,将组件插入已有的 DOM 节点中。

30.问题:span标签的width和height分别为多少? (D)

<div style=”width:400px;height:200px;”> <span style=”float:left;width:auto;height:100%;”> <i style=”position:absolute;float:left;width:100px;height:50px;”>hello</i> </span></div>

A.width = 0px,height = 0px

B.width = 400px,height = 200px

C.width = 100px,height = 50px

D.width = 0px,height = 200px

span不是块级元素,不支持宽高,但是float:left使得span变成块级元素支持宽高。

height:100%----和父级元素相同。width:auto—宽度由内容撑开

i标签使用的是绝对定位,脱离了文档流,不再占父级空间,所以无法撑开父级。

31.关于下列CSS选择器:ID选择器、类选择器、伪类选择器、标签名称选择器,排序正确的是:(B)

A.ID选择器> class 选择器>伪类>标签名称选择器

B.ID 选择器> class 选择器=伪类>标签名称选择器

C.ID选择器>伪类> class 选择器>标签名称选择器

D.ID 选择器> class 选择器>伪类=标签名称选择器

32.请按顺序选择正确的代码,实现图片预加载功能( C

<template> <div> <div> <h1><strong>Loading...</strong></h1> <h2><strong>{ {percent}}%</strong></h2> </div> </div></template><script>export default { data() { return { count: 0, percent: '', images: [ 'example.png', '...', '...' ] } }, mounted() { __1__() }, methods: { preload: function() { for (let url __2__ this.images) { let image = new Image() image.src = url image.__3__ = () => { this.count++ this.percent = Math.floor(this.count / this.images.length * 100) } } }, }, watch: { __4__: function(num) { if (num === this.images.length) { this.$router.push({path: 'home'}) } } }}</script>

A.onload、of、this.preload、count

B.this.preload、in、onload、percent

C.this.preload、of、onload、count

D.onload、in、this.preload、percent

挂载时,调用preload方法,使用of获取数组每项,图片加载成功时触发onload事件,观察count,当count等于数组长度时,代表全部加载完毕,进行跳转。

for…in 语句以原始插入顺序迭代对象的可枚举属性(只能迭代出可枚举的属性)。—拿到的是下标

for…of 语句遍历可迭代对象定义要迭代的数据(非自定义属性)。—拿到的是值

33.有如下 CSS 代码

div { margin-top: 20px; margin-right: 30px; margin-bottom: 40px; margin-left: 50px;}

请问下列选项与该 div 实现了相同效果的是:(A )

A.div{margin: 20px 30px 40px 50px};

B.div{margin: 20px 50px 40px 30px};

C.div{margin: 20px 40px 50px 30px};

D.div{margin: 20px 40px 30px 50px}.

上,右,下,左,顺时针

34.关于Vue组件化说法错误的是( B )

A.所谓组件化,就是把页面拆分成多个组件 (component),每个组件依赖的 CSS、JavaScript、模板、图片等资源放在一起开发和维护

B.组件是资源独立的,组件在系统内部可复用,但是组件和组件之间不可以嵌套

C.vue的组件之间可以进行通信

D.组件化能提高开发效率,方便重复使用,简化调试步骤,提升项目可维护性,便于多人协同开发

组件是资源独立的,组件在系统内部可复用,而且组件和组件之间可以嵌套

35.以下序列(9,7,3,5)构造的Haffman树带权路径长度为( C)

A. 45

B. 46

C. 47

D. 48

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m9KTiLJQ-1681053828563)(null)]

36. 一般包含什么?©

A.头部区域

B.侧边栏

C.文章主题部分

D.底部内容

主体内容

37.执行以下程序,输出结果为(A)

var str = 'acdaecad';var obj = { };for (var i = 0;i<str.length;i++){ if (obj[str.charAt(i)]){ //判断是obj里是否有str里面某个字母的属性 obj[str.charAt(i)]++;//如果有,给那个属性++ } else { obj[str.charAt(i)] = 1; //如果没有,给obj添加那个属性}}var val1;var val2 = 0;for (var k in obj) { //for in 循环遍历对象,k是键(也就是对象的属性名) obj就是原对象 if (obj[k] > val2){ 如果obj的属性值大于val2 里面a出现的最多。++次数最多,也就是3 val2 = obj[k]; //val2等于obj的属性值 val1 = k; //最后将属性名赋予 }}console.log(val1);所以最后输出a

A. a

B.3

C.e

D.1

程序一开始先把字符串str的单个字符作为对象obj的属性,属性值为单个字符在字符串str中的个数,即obj = {a: 3, c: 2, d: 2, e: 1},然后开始遍历对象obj,找出对象obj属性值最大的属性名,因此最终val1结果为属性a,val2为该属性对应的属性值3,该程序的执行效果即为找出字符串str中同一元素出现个数最多的字符以及对应的个数

38.以下选项中不可以进行路由跳转的是( A )

A.this.$router.jump()

B.route-link

C.this.$router.push()

D.this.$router.replace()

B:声明式导航

C、D:编程式导航

route-link、this. r o u t e r . p u s h ( ) 、 t h i s . router.push()、this. router.push()、this.router.replace()、this.$router.go()等

39.以下哪项对react-router-dom中组件分类是错误的(D)

A.路由器组件: BrowserRouter和HashRouter

B.导航组件: Link和NavLink

C.路由匹配组件: Route和Switch

D.导航组件: Route和Switch

又是react

在react-router-dom中通常使用的组件有三种路由器组件: 如BrowserRouter和HashRouter

​ 路由匹配组件: Route和Switch 组件

​ 导航组件: Link和NavLink 组件

40.下列有关定位说法错误的是(A

A.absolute 可以基于 static 定位

B.fixed 固定悬浮在视口内

C.若无显示说明,定位 positon 不会继承到子元素

D.relative 相对于其正常位置进行定位

absoulte的定义是基于非static的父元素



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。