1、下面代码输出什么? (C)

function addToList(item, list) {

return list.push(item)

}

var result = addToList(‘apple’, [‘banana’])

console.log(result)

A: [‘banana’, ‘apple’]

B: [‘apple’, ‘banana’]

C: 2

D: true

2、下列哪种数组的方法不会修改数组本身 ?(A)

A: slice B: splice C: sort D: unshift

3.、请问下面那个方法可以删除数组最后一个元素?(C)

A: shift() B:unshift() C: pop() D: push()

4、以下不是闭包特点的是 (D)

A 函数嵌套函数

B 函数内部可以引用外部的参数和变量

C 参数和变量不会被垃圾回收机制回收

D 返回的函数可以不用存储在外部变量中

5、同步和异步执行分别表示什么含义(A)

A 按顺序依次执行和同时分开执行

B 同时分开执行和按顺序依次执行

C 按一致的速度执行和按不同的速度执行

D 按相同的步骤执行和按不同的步骤执行

6、.以下运行的结果是false的是 function Box(){this.name=‘zhang’;} function Desk(){this.age=100;} function Table(){this.lever=1000} Desk.prototype=new Box();//通过原型链继承 var desk=new Desk(); var table=new Table (C);

A alert(table instanceof Object)

B alert(desk instanceof Box);

C alert(Desk instanceof Box);

D alert(desk instanceof Desk );

7、在HTML页面中,下列选项不属于键盘相关事件的是(C)
A onkeyup B onkeydown C oncontextmenu D onkeypress

8.下列代码的执行结果是 var result = 12 + 2 + “12”- 2 * 2; document.write(result); (C)

A 1221222 B 14124 C 1408 D 2820

9.下列关于事件监听器的说法,错误的是 (A)

A addEventListener第三个参数为false时,表示事件不会触发

B IE8以下使用attachEvent添加事件监听器

C addEventListener同一个事件可以绑定多个函数

D IE8以下浏览器使用detachEvent移除监听器.

10、阻止浏览器默认行为,使用以下哪个方法(B)

A stopPropagation() B preventDefault() C cancelBubble = false D return true

11、下列关于Vue说法错误的是(D)。

A. Vue与Angular都可以用来创建复杂的前端项目

B. Vue的优势主要包括轻量级、双向绑定

C. Vue在进行实例化之前,应确保已经引入了核心文件vue.js

D. Vue与React语法是完全相同的

12、下列关于Vue的优势的说法错误的是(C)。

A. 双向数据绑定 B.轻量级框架 C.增加代码的耦合度 D.实现组件化

13、下列不属于Vue开发所需工具的是(D)。

A. Chrome浏览器 B.VS Code编译器 C. vue-devtools D. 微信开发者工具

14、Npm管理器是基于(A)平台使用的

A.Node.js B.Vue C.Babel D.Anguar

15、下列选项,用来安装vue模块的正确命令是(A)。

A. npm install vue B.node.js install vue C.node install vue D. npm I vue

16、Vuex实例对象中类似于computed计算属性功能的选项是(D)。

state B.mutations C.actions D.getters

17、下面关于Vuex核心模块说法,错误的是(B )。

A.Vuex配置对象中,actions选项是异步的

B.Vuex.config对象是全局配置对象

C.Vuex配置对象中,mutations选项是同步的

D.通过commit完成mutations提交

18、现有以下代码,下面说法错误的是(B)

使用v-show控制

使用v-if控制

A. 当flag是true时,两个div都能显示出来

B. 当flag是false时,第一个div进行了渲染

C. 当flag是false时,第一个div设置了display: none

D.当flag是false时,第二个div设置了visible: hidden

19、关于路由说法错误的是(C)

A.使用脚手架创建项目时,需要选择安装vue-router

B.在嵌套路由中,需要VueRouter的参数中使用children配置

C. vue-router不可以实现重定向

D. vue-router可以通过配置实现路由懒加载

20、下列关于Vue2和Vue3的描述错误的是(C)

A.Vue3中Template支持多个根标签,Vue2不支持

B.Vue3中的生命周期的挂载钩子是onMounted,需要引入才能使用

C.Vue3组合API中的setup()方法中不可以使用生命周期钩子函数

D.Vue3引入了tree-shaking,以模块的方式引入api,减小打包体积

二、 判断题

1、Vue与Angual 和React框架不同的是,Vue设计为自下而上逐层应用。✔

2、Vue完全能够为复杂的单页应用提供驱动。✔

3、params方式传参类似于GET请求。(x)

4、Vue中 MVVM 框架主要由3部分组成:Model 、View和 ViewModel。✔

5、开发环境下,使用import VueRouter from ‘vueRouter’来导入路由。(x)

6、插件不能修改webpack的内部配置,但是可以向vue-cli-service注入命令。(x)

三、 问答题

1、Vue 组件中 data 为什么必须是函数?

保证组件的独立性和可复用性,data是一个函数,组件实例化的时候将会调用这个函数,返回一个对象,计算机会给这个对象分配一个内存地址,你实例化几次,就分配几个内存地址,他们的地址都不一样,所以每个组件中的数据不会相互干扰,改变其中一个组件的状态,其它组件不变。

2、vuex的State特性是?

1、Vuex就是一个仓库,仓库里面放了很多对象。其中state就是数据源存放地,对应于与一般Vue对象里面的data
2、state里面存放的数据是响应式的,Vue组件从store中读取数据,若是store中的数据发生改变,依赖这个数据的组件也会发生更新
3、它通过mapState把全局的 state 和 getters 映射到当前组件的 computed 计算属性中3、v-show和v-if指令的共同点和不同点

  • v-show指令是通过修改元素的displayCSS属性让其显示或者隐藏
  • v-if指令是直接销毁和重建DOM达到让元素显示和隐藏的效果

4、Vue 路由跳转的几种方式

第一种方式:router-link (声明式路由)第二种方式:router.push(编程式路由)第三种方式:this.$router.push() (函数里面调用)第四种方式:this.$router.replace() (用法同上,push)第五种方式:this.$router.go(n)

5、vuex的State特性

Vuex就是一个仓库,仓库里面放了很多对象。其中state就是数据源存放地,对应于一般Vue对象里面的data。state里面存放的数据是响应式的,Vue组件从store中读取数据,若是store中的数据发生改变,依赖这个数据的组件也会发生更新。通过mapState和mapGetters把全局 state 和 getters 映射到当前组件的 computed 计算属性中

6、params和query的区别

⽤法:query要⽤path来引⼊,params要⽤name来引⼊,接收参数都是类似的,分别是this. $router.query.name 和 this.$router.params.name。url地址显⽰:query更加类似于我们ajax中get传参,params则类似于post,说的再简单⼀点,前者在浏览器地址栏中显⽰参数,后者则不显⽰

注意点:query刷新不会丢失query⾥⾯的数据params刷新会丢失params⾥⾯的数据